Android数据保存之文件保存

Android数据保存:SharedPreference,文件保存,数据库保存

今天就介绍一下文件保存:主要用到的File API

File 对象适合按照从开始到结束的顺序不跳过地读取或写入大量数据。 例如,它适合于图片文件或通过网络交换的任何内容.

所有 Android 设备都有两个文件存储区域:“内部”和“外部”存储。这些名称在 Android 早期产生,当时大多数设备都提供内置的非易失性内存(内部存储),以及移动存储介质,比如微型 SD 卡(外部存储)。一些设备将永久性存储空间划分为“内部”和“外部”分区,即便没有移动存储介质,也始终有两个存储空间,并且无论外部存储设备是否可移动,API 的行为均一致。(引用自Android Developer Training).这样就可以得出数据保存可以放在内部存储和外部存储俩种方式:

1.将文件保存在内部存储中:

在内部存储中保存文件时,可以通过一下俩种方式获取相应的目录:


getFilesDir()

返回表示您的应用的内部目录的 File 。

getCacheDir()

返回表示您的应用临时缓存文件的内部目录的 File。 

在这些目录中新建文件,用File() API;



File file = new File(context.getFilesDir(), filename);

也可以用   openFileOutput() 写入

String filename = "myfile";
String string = "Hello world!";
FileOutputStream outputStream;

try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  outputStream.write(string.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}


缓存文件 :createTempFile();
 File file = File.createTempFile(fileName, null, context.getCacheDir());

删除文件:
myContext.deleteFile(fileName);


2.将文件保存在外部存储中:

外部存储:必须确认其容量
 
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
   
String state = Environment.getExternalStorageState();
   
if (Environment.MEDIA_MOUNTED.equals(state)) {
       
return true;
   
}
   
return false;
}

/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
   
String state = Environment.getExternalStorageState();
   
if (Environment.MEDIA_MOUNTED.equals(state) ||
       
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
       
return true;
   
}
   
return false;
}
外部存储文件可以保存为公共文件和私有文件,保存公共文件调用    getExternalStoragePublicDirectory()  ,保存文件私有文件调用  getExternalFilesDir()  ;


删除文件:
myFile.delete();



:当用户卸载您的应用时,Android 系统会删除以下各项:

  • 您保存在内部存储中的所有文件
  • 您使用 getExternalFilesDir() 保存在外部存储中的所有文件。

但是,您应手动删除使用 getCacheDir() 定期创建的所有缓存文件并且定期删除不再需要的其他文件









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值