写了两个demo,一个是使用SharedPreferences将数据存储在应用文件中并读取,另一个是使用Context的openFileOutput和openFileInput将数据存储在应用文件中并读取。

SharedPreferences以key-value键值对存储,存储地址在

data/data/yourApp'sPackage/shared_prefs/yourSharedFileName.xml

  

Context以文件形式存储,存储地址在

data/data/yourApp'sPackage/files/yourSharedFileName

  

主要涉及Activity代码如下:

class HandFile {
private Context context;
public HandFile(Context context) {
this.context=context;
} /**
* 将message写到fileName中,有程序写出来,用fileOutPutStream
* @param fileName
* @param message
*/
public void writeFileData(String fileName, String message) {
try{
FileOutputStream fileOutputStream = context.openFileOutput(fileName,context.MODE_PRIVATE);
byte[]bytes = message.getBytes();
fileOutputStream.write(bytes); }catch (Exception e){
e.printStackTrace();
}
} /**
* 打开程序私有文件fileName,读入数据
* @param fileName
* @return result
*/
public String readFileData(String fileName) {
String result = "";
try{
FileInputStream fileInputStream = context.openFileInput(fileName);
int length =fileInputStream.available();
byte[]buffer = new byte[length];
fileInputStream.read(buffer);
result=new String(buffer);
fileInputStream.close();
}catch (Exception e){
e.printStackTrace();
}
return result;
}
}

  

   /**
* 缓存数据到程序中,格式为key-value
*/
public void initData(){
SharedPreferences read =getSharedPreferences("user",MODE_PRIVATE);
String name=read.getString("name","");
String address=read.getString("address","");
if(name.equals("")&&address.equals("")){
Toast.makeText(this,"抱歉,SharedPreferences没有数据",Toast.LENGTH_LONG).show();
}else{
nameText.setText(name);
addressText.setText(address);
Toast.makeText(this,"您使用SharedPreference初始化数据",Toast.LENGTH_LONG).show();
}
}
public void onClick(View view) {
/**
* user表示要写入的xml文件名
* */
SharedPreferences.Editor editor=getSharedPreferences("user",MODE_PRIVATE).edit();
switch (view.getId()) {
//显示意图Intent
case R.id.saveAddress:
String name=nameText.getText().toString();
String address =addressText.getText().toString();
/**
* 将数据放入文件
*/
editor.putString("name",name);
editor.putString("address",address);
editor.commit();
Toast.makeText(this,"您使用了SharedPreferences保存数据",Toast.LENGTH_LONG).show();
break;
case R.id.delAddress:
/**
* 消除所有数据
*/
editor.clear();
editor.commit();
Toast.makeText(this,"您删除了SharedPreferences中的所有数据",Toast.LENGTH_LONG).show();
break;
}
}

  

运行程序后 adb shell su获取root权限后查看文件夹详情如下:

generic_x86:/data/data/com.patech.testApp/files # tail first
大家好,这里市清华大学出版社出的一本Android类书籍。generic_x86:/data/data/com.patech.testApp/files # cd ..
generic_x86:/data/data/com.patech.testApp # ls
cache code_cache files shared_prefs
generic_x86:/data/data/com.patech.testApp # cd shared_prefs
generic_x86:/data/data/com.patech.testApp/shared_prefs # ls
user.xml
127|generic_x86:/data/data/com.patech.testApp/shared_prefs # tail user.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="address">hello</string>
<string name="name">hello</string>
</map>

  

Android-File读写+SharedPreferences的存取地址的更多相关文章

  1. android 很多牛叉布局github地址(转)

    原文地址 http://blog.csdn.net/luo15309823081/article/details/41449929 点击可到达github-------https://github.c ...

  2. wemall app商城源码Android数据的SharedPreferences储存方式

    wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据 ...

  3. Android 中替代 sharedpreferences 工具类的实现

    Android 中替代 sharedpreferences 工具类的实现 背景 想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit. ...

  4. [转]Android - 文件读写操作 总结

     转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...

  5. Android应用开发SharedPreferences存储数据的使用方法

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

  6. Android开发之sharedpreferences 详解

    SharedPreferences简介:   做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等 ...

  7. Android开发:SharedPreferences 存储数据、获取数据

    Android开发:SharedPreferences 存储数据.获取数据 email:chentravelling@163.com 开发环境:win7 64位,Android Studio. 关于S ...

  8. Android开发学习之数据存取

    Android系统中提供了一种文件读写的方法,可以将一些数据以文件的形式保存在设备中.比如一些word文档,PDF文档,图片,音频,视频文件等. 使用文件读写方法的步骤: 1.调用Context.op ...

  9. 【Mark】Android应用开发SharedPreferences存储数据的使用方法

    Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...

随机推荐

  1. nginx之配置proxy_set_header问题梳理

    客户端请求web服务,客户端:ip:192.168.223.1 nginx作为反向代理服务器:192.168.223.136 nginx作为后端web服务器:192.168.223.137 前提条件: ...

  2. Snapshot Array

    Implement a SnapshotArray that supports the following interface: SnapshotArray(int length) initializ ...

  3. java源码--Map

    Map接口 用于保存具有映射关系的数据结构,实现该接口的类可以通过键来获取对应的值.. 可以将给定一个键值对存储在Map接口的实现类实例中,如:map.put("key", &qu ...

  4. Python基础 第7章 再谈抽象

    1. 1 多态 多态,即便不知道变量指向的是哪种对象,也能对其执行操作,且操作的行为将随对象所属的类型(类)而异. 1.2 多态与方法 当无需知道对象是什么样的就能对其执行操作时,都是多态在起作用. ...

  5. easyui实现树形菜单Tab功能、layout布局

    一:常见三种前端ui框架 在初学者入门的状态下,我们常见的前端框架有三种且都有自己的官方网站: 1.easyui:官方网站(http://www.jeasyui.net/) 基于jquery的用户页面 ...

  6. shell习题第26题:监控mysql服务

    [题目要求] 假设mysql密码是123456. 写脚本监控mysql服务是否正常,比如是否可以执行show processlist,并检测一下当前的mysql服务是主还是从.如果是从,请判断他的主从 ...

  7. QCache<key,T> 就定义了一个缓存,其类似于map,好处是QCache自动获得被插入对象的所有权,控制所有对象的costs总和(自动管理对象的生存时间。正经数据是不会用到它的,辅助控制才有可能用到它)

    在软件开发中,我们经常需要在内存中存储一些临时数据用于后续相关计算.我们一般把这些数据存储到某个数组里,或者STL中的某个合适的容器中.其实,在Qt中直接为我们提供了一个QCache类专用于这种需求. ...

  8. 使用QFileInfo类获取文件信息(文件的所有权和权限检查在默认情况下是被禁用的。要使能这个功能 extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;)

    QFileInfo类为我们提供了系统无关的文件信息,包括文件的名字和在文件系统中位置,文件的访问权限,是否是目录或符合链接,等等.并且,通过这个类,可以修改文件的大小和最后修改.读取时间.同时,QFi ...

  9. 通俗化理解Spring3 IoC的原理和主要组件

      ♣什么是IoC? ♣通俗化理解IoC原理 ♣IoC好处 ♣工厂模式 ♣IoC的主要组件 ♣IoC的应用实例 ♣附:实例代码 1.什么是IoC(控制反转)? Spring3框架的核心是实现控制反转( ...

  10. SQL优化中的重要概念:事务

    原文:SQL优化中的重要概念:事务 sql 优化和事务有关系? 从表面上看,让sql跑的更快,似乎和事务这个概念没什么联系,但是关系数据库中最重要的2个概念就是 关系.事务. 关系,对应到sql中,是 ...