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

android数据存储读取2:文件存储(对比IOS)

2015-06-09 11:44 585 查看
Android:数据存储可以保存在手机内部存储空间内,也可以保存在手机外部sdcard中。当然现在很多手机都把这个外部存储卡集成到了手机内部了,不需要插拔。

IOS:直接写到沙盒中,没有内外之分。

Android:文件流操作

IOS:writeToFile 这个方法非常的简单容易使用。

(1)将文件存储在外部SDCard中

1.1 首先检查外部SDCard是否存在

1.2 获取外部SDCard的路径

1.3 创建文件对象 获取文件流

1.4 利用文件流对文件进行操作

public staticboolean saveUserInfo(Context context, String number, String password) {

try {

// 判断当前的手机是否有sd卡

String state = Environment.getExternalStorageState();

if(!Environment.MEDIA_MOUNTED.equals(state)) {

// 已经挂载了sd卡

returnfalse;

}

File sdCardFile = Environment.getExternalStorageDirectory();

File file = new File(sdCardFile,"test.txt");

FileOutputStream fos =
new FileOutputStream(file);

String data = number +
"##" + password;

fos.write(data.getBytes());

fos.flush();

fos.close();

returntrue;

} catch (Exception e) {

e.printStackTrace();

}

returnfalse;

}
从SDCard读取文件内容
1.1 检查是否有SDCard

1.2 获取SDCard路径

1.3 创建文件对象 获取输入文件流

1.4 利用Buffer读取一行数据

public static Map<String, String> getUserInfo(Context context) {

try {

// 判断当前的手机是否有sd卡

String state = Environment.getExternalStorageState();

if(!Environment.MEDIA_MOUNTED.equals(state)) {

// 已经挂载了sd卡

returnnull;

}

File sdCardFile = Environment.getExternalStorageDirectory();

File file = new File(sdCardFile,"test.txt");

BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream(file)));

String text = br.readLine();

br.close();

if(!TextUtils.isEmpty(text)) {

Map<String, String> userInfoMap =
new HashMap<String, String>();

String[] split = text.split("##");

userInfoMap.put("number", split[0]);

userInfoMap.put("password", split[1]);

return userInfoMap;

}

} catch (Exception e) {

e.printStackTrace();

}

returnnull;

}
2 读写手机内部文件操作
2.1 可以指定文件路径 或者获取文件的路径

2.2 创建输入输出流 对文件进行读写操作 或者创建读取buffer按行读取

2.1.1 根据路径获取写入流

String path = "/data/data/包名/test.txt";

FileOutputStream fos = new FileOutputStream(path);
2.1.2 根据路径获取写入流

File filesDir = context.getCacheDir();

File f = new File(filesDir,
"test.txt");

FileOutputStream fos = new FileOutputStream(f);
2.2.1 利用流读取数据



2.2.2 按照行进行读取



文件读写有四种属性

Context.MODE_PRIVATE Context.MODE_APPEND(追加)Context.MODE_WORLD_READABLE Context.MODE_WORLD_WRITEABLE

getCacheDir()和getFilesDir()方法:

getCacheDir()方法用于获取/data/data/<packagename>/cache目录

getFilesDir()方法用于获取/data/data/<packagename>/files目录
如果创建文件的时候只指定文件名,那么文件位于
/data/data/<packagename>/files
目录下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: