Android-File读写+SharedPreferences的存取地址
写了两个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的存取地址的更多相关文章
- android 很多牛叉布局github地址(转)
原文地址 http://blog.csdn.net/luo15309823081/article/details/41449929 点击可到达github-------https://github.c ...
- wemall app商城源码Android数据的SharedPreferences储存方式
wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据 ...
- Android 中替代 sharedpreferences 工具类的实现
Android 中替代 sharedpreferences 工具类的实现 背景 想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit. ...
- [转]Android - 文件读写操作 总结
转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...
- Android应用开发SharedPreferences存储数据的使用方法
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
- Android开发之sharedpreferences 详解
SharedPreferences简介: 做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等 ...
- Android开发:SharedPreferences 存储数据、获取数据
Android开发:SharedPreferences 存储数据.获取数据 email:chentravelling@163.com 开发环境:win7 64位,Android Studio. 关于S ...
- Android开发学习之数据存取
Android系统中提供了一种文件读写的方法,可以将一些数据以文件的形式保存在设备中.比如一些word文档,PDF文档,图片,音频,视频文件等. 使用文件读写方法的步骤: 1.调用Context.op ...
- 【Mark】Android应用开发SharedPreferences存储数据的使用方法
Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的 ...
随机推荐
- easyui-numberspinner实现双箭头效果
效果图: 实现了 [点击左上角 输入框的值加 0.5] [ 左下角 值减0.5 ] [ 右上角点击 值加1] [ 右下角点击 值减1] 代码: <span style="positio ...
- jQuery禁用input历史选择
$("#id").attr("autocomplete", "off");
- [转帖]降低 80% 的读写响应延迟!我们测评了 etcd 3.4 新特性(内含读写发展史)
降低 80% 的读写响应延迟!我们测评了 etcd 3.4 新特性(内含读写发展史) https://www.cnblogs.com/alisystemsoftware/p/11555426.ht ...
- java poi3.10.1基本excel使用
效果: 代码: //时间 String checkTime = "yyyy/MM/dd"; //人员查询 Set preParticipantNames = new HashSet ...
- springcloud断路器Dashboard监控仪表盘的使用
断路器Dashboard监控仪表盘的使用 在原有的orderserverfeignhystrix服务中使用 1.增加依赖仓库 <dependency> <g ...
- vue 中使用rem布局
在使用vue-cli搭建好项目框架后,在目录结构的index.html文件中添加一段js代码: fnResize(); window.onresize = function () { fnResize ...
- JS 03事件
<script type="text/javascript"> function getUserInput() { //获取用户输入的内容 var val = docu ...
- docker系列3--dockerd配置文件
dockerd启动配置 docker通信方式选择 docker默认以sock文件方式提供接口,要开放tcp接口远程调用,需要修改配置文件: The Docker daemon can listen f ...
- CentOS7 服务器连接超时自动断开问题解决
背景 现在的客户们都开始使用云服务器了,还要通过堡垒机才给访问权限,这种方式访问方式以前都是银行的"专利",不过也间接说明其他行业的信息化也越来越普及了.今天主要是因为分配给我的这 ...
- Nginx server配置
项目一般都需要前后端的配置,用二级域名把它区分开:首先在nginx.conf:里面加一句话: http{ #这里面有很多其他的配置 如:gzip FastCGI等等 include vhosts/*. ...