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
目录下
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
目录下
相关文章推荐
- android 页面跳转 action
- Android之官方导航栏之Toolbar(Toolbar+DrawerLayout+ViewPager+PagerSlidingTabStrip)
- IntelliJ IDEA 关联android源码
- android的编译和运行过程深入分析
- android TabHost小结
- Android系统启动过程
- 一个方便的图片加载框架——ImageViewEx
- Android实现循环平移动画示例
- Android之官方导航栏之Toolbar(Toolbar+DrawerLayout+ViewPager+PagerSlidingTabStrip)
- android中ImageView设置选中与不选中颜色
- Android数据存储
- Android 开发小仓库
- android自定义属性三部曲
- Android中创建快捷方式及删除快捷方式实现方法
- Listview异步加载图片之优化篇(有图有码有解释)
- android 外部单独编一个模块MAKEFILE示例
- android数据存储读取1:SharedPreferences(对比IOS)
- Android中的全局变量与局部变量使用小结
- gradle 编译android APK
- Android:自定义输入法(输入密码时防止第三方窃取)