Android文件存储

来源:互联网 发布:gx developer编程手册 编辑:程序博客网 时间:2024/05/29 13:23

一、内部存储

1、创建文件

FileOutputStream fos = context.this.openFileOutput("test.txt", MODE_PRIVATE);—>在“/data/data/包名/files/”目录下会创建test.txt文件(如果该文件存在的话,会覆盖原有数据),
MODE_PRIVATE:默认方式,文件是应用程序私有的
MODE_WORLD_READABLE:所有应用程序都可以访问的
MODE_WORLD_WRITEABLE:所有应用程序都可以写,
MODE_APPEND:如果要创建的文件存在则新写入的数据不会覆盖以前的数据。

2、打开文件

FileInputStream fis = Context.openInputFile(String filename); //打开”/data/data/<package name>/files“目录下的文件.。

3、String[] files = Context.fileList();  //列出”/data/data/<package name>/files“目录下所有文件.

4、Context.deleteFile(string filename) //删除”/data/data/<package name>/files“目录下文件.

5、File fileDir = Context.getFilesDir();  //获取应用程序数据目录”/data/data/<package name>/files“

6、File dir = Context.getDir(dirName, Context.MODE_PRIVATE); //在“/data/data/<package name>”目录下打开或创建一个子目录,如果不存在,就创建,否则直接打开。需要传入目录名称,它返回 一个文件对象用到操作路径 。

7、File file = Context.getFileStreamPath(filename); //打开”/data/data/<package name>/files“目录下的filename文件。以File对象方式查看所创建文件,需要传入文件名,会返回文件对象 。

8、File cachedir = Context.getCacheDir();  //获取当前应用程序的数据缓存目录。把不是非常重要的数据文件保存在此处,当手机内存不足的时候,系统会自动删除App的cache目录的数据.

二、外部存储

从API Level 8开始
对于应用程序的私有文件应该放在Context.getExternalFilesDir目录下.

非私有的(shared)的文件应该放在目录下Environment.getExternalStoragePublicDirectory(String)所指定的目录下。
对于缓存文件应该放在Context.getExternalCacheDir()目录下。
另外在准备把数据保存外部存储之前应该先通过Environment.getExternalStorageState()获取其状态(Environment.MEDIA_MOUNTED挂载,Environment.MEDIA_UNMOUNTED未挂载),再根据其状态确定其是否可用,如果不可用,可以考虑将数据保存在内部存储中。

1、通过Context.getExternalFilesDir(null)方法可以获取到 /mnt/SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据、

2、通过Context.getExternalCacheDir()方法可以获取到 /mnt/SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据。

如果使用上面的方法,当你的应用在被用户卸载后,/mnt/SDCard/Android/data/你的应用的包名/ 这个目录下的所有文件都会被删除,不会留下垃圾信息。
而且上面二个目录分别对应 设置->应用->应用详情里面的”清除数据“与”清除缓存“选项

3、Environment.getExternalStorageDirectory()//获取外部存储根目录 /mnt/sdcard 。

注意:使用外部存储需要加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>



0 0
原创粉丝点击