您的位置:首页 > 移动开发 > Android开发

Android存储(读取)之内存FilesDir存储

2016-05-15 11:24 411 查看
数据存储到私有文件夹中:data/data/包名/files/



点击“清除数据”按钮可以删除data/data/包名/files/下的数据



// 把String保存到私有文件夹中:data/data/包名/files/
StoreUtils.storeStringToFilesDir(this, "fileDir", "ha.txt");
//读取data/data/包名/files/中的文件
String data = StoreUtils.readStringFromFilesDir(new File(getFilesDir(), "ha.txt"));


/**
* 把数据存储到私有文件夹中
* 默认目录:data/data/包名/files/
* 1.同样上面的目录可以使用context.getFilesDir()来获取
* 2.只有自己的应用程序可以访问该目录,其他应用程序无法访问该目录(私有文件夹)
* 真实的手机data这个目录是打不开的(未root),这是为了保护隐私,系统做了权限设置
*/

/**
* 数据存储到私有文件夹中:data/data/包名/files/
* @param context 上下文
* @param content 要保存的内容Sting
* @param fileName 保存内容的文件名称
*/
public static void storeStringToFilesDir(Context context, String content, String fileName) {
try {
File file = new File(context.getFilesDir(), fileName);
FileOutputStream fos = new FileOutputStream(file);
fos.write(content.getBytes());
fos.close();
Toast.makeText(context, "存储数据到FilesDir成功", Toast.LENGTH_SHORT).show();
}  catch (IOException e) {
e.printStackTrace();
Toast.makeText(context, "存储数据到FilesDir失败", Toast.LENGTH_SHORT).show();
}
}

/**
* 从私有文件夹中数读取据:data/data/包名/files/
* @param file  data/data/包名/files/下的文件
* @return String内容
*/
public static String readStringFromFilesDir(File file) {

try {
FileInputStream fis = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String content = "";
String tmp;
while ((tmp = br.readLine()) != null) {
content += tmp;
}
br.close();
fis.close();
return content;
} catch (FileNotFoundException e) {
e.printStackTrace();
return "不存在此文件,请核对文件路径、文件名";
} catch (Exception e) {
e.printStackTrace();
return "文件读取失败";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: