27
2017
09

Android File 文件操作心得记录

Android内存解析(二)— 详解内存,内部存储和外部存储
彻底理解android中的内部存储与外部存储
android中的文件操作详解以及内部存储和外部存储

Android File 文件操作心得记录(一)

内存、内部存储与外部存储的理解

1.内存:用来运行程序,不能用来长期存储数据,一旦断电(关机),内存中所有数据将丢失。

2.内部存储:这里所说的内部存储和我们平时的讲的内部存储是不一样的。内部存储位于系统的一个特殊位置,内部存储中根据不同程序包名生成对应该程序包名的目录,该目录中存储的数据文件只能被该程序访问(不同文件操作模式 访问权限不同)。当程序删除时,内部存储中对应该程序的目录下所有数据会被删除。内部存储容量小,尽量减少内部存储的使用,除非是存储重要的数据文件(SQLite和SharedPreferences都是存储在内部存储中。 注意:内部存储只有root后才能查看!)

3.外部存储:外部存储其实就是我们平时讲的SD卡,然而现在大量的手机都是直接将SD卡固化到手机里面就认为这是内部存储,其实任然还是外部存储,和第二点的内部存储是不同性质的(注意:手机连电脑上或者用文件管理的软件可查看的都是外部存储,在不root情况下就可以查看)。

内部数据

将不可见(没有root情况下)的内置存储卡数据统称为内部数据

应用私有数据存储路径:/data/user/0/你的应用包名/ 
(该路径是笔者手机的路径,不同手机路径会有变化)

Context.getFilesDir(): /data/user/0/YourAppPackage/files
Context.getCacheDir(): /data/user/0/YourAppPackage/cache

存储地址:
SQLite: /data/user/0/YourAppPackage/databases
SharedPreferences:  /data/user/0/YourAppPackage/shared_prefs
Environment.getDataDirectory(): /data
Environment.getRootDirectory(): /system
Environment.getDownloadCacheDirectory(): /cache
(root后可以查看这些文件夹 还有很多就不列出了)

外部数据

将没有root就可见的内置存储卡和外置存储卡数据统称为外部数据

1.外部私有数据

当程序卸载时,所对应的外部私有数据也会删除!

Context.getExternalCacheDir(): /storage/emulated/0/Android/data/YourAppPackage/cache 
Context.getExternalFilesDir("a"): /storage/emulated/0/Android/data/YourAppPackage/files/a 

注: getExternalFilesDir()的传参为null 返回files根目录

2.外部公有数据

Environment.getExternalStorageDirectory():  /storage/emulated/0
Environment.getExternalStoragePublicDirectory("a"): /storage/emulated/0/a

注: getExternalStoragePublicDirectory()的传参不能为null 否则报空指针错误

上一篇:Studio用布局编辑器设计UI界面 下一篇:AndroidManifest 合并