写了两个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. select 和v-model

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. [转帖]英特尔首次使用其3D堆叠架构演示Lakefield芯片设计

    英特尔首次使用其3D堆叠架构演示Lakefield芯片设计 http://www.chinapeace.org.cn/keji/201904/2812749.html 这段时间学习最大的收获: . 发 ...

  3. Jmeter CSV操作

    统计行号列号 import java.io.BufferedReader; import java.io.FileReader; import java.io.File; print("== ...

  4. 第一坑:class编译版本

    这个坑是刚去公司的时候,公司项目运行环境的jdk版本是1.5,当时我编译版本是1.7,然后放上去一直报找不到class的错误,我硬是找了半天,后来才听说要用1.5版本编译.

  5. 【转载】spring mvc 后端获得前端传递过来的参数的方法

    1.通过HttpServletRequest 获得 HttpServletRequest.getParameter(参数名),可以获得form表单中传递的参数,或ajax或url中传递过来的参数,如果 ...

  6. vim入门一 常用指令

    以下为自己常用的vim指令总结 一.插入命令 a 在光标所在字符后进入插入模式 A 调到光标所在行行尾进入插入模式 i 在光标所在字符前插入模式 I 调到光标所在行行首进入插入模式 o 调到光标所在上 ...

  7. JS 定时器/延时器

    定时器 创建定时器    window.setInterval(方法类型,间隔时间(1000=1秒)) var timer=window.setInterval(func,2000); var i=0 ...

  8. SAS学习笔记17 SAS生成随机数函数(rand function)

  9. Centos6 yum安装nginx

    1.Centos6系统库中默认是没有nginx的rpn包的,所以我们需要先更新下rpm依赖库 (1):使用yum安装nginx,安装nginx库 rpm -Uvh http://nginx.org/p ...

  10. php 获取某个月的周一

    今天有个朋友问了一个问题,最后解决了下,先整理记下来,后面用到了再说 function getMonday($month = ''){ if(empty($month)){ $month = date ...