应用访问文件和目录最便捷的方式是使用 Context 类提供的方法。Context 类是所有关键应用组件的超类,常见的几个应用组件有:Application、Activity 和 Service。因此,这些子类可使用 Context 类提供的方法(如下表所示)轻松访问文件和目录。
内部缓存 | ||||
---|---|---|---|---|
方法 | context.getCacheDir() | |||
路径 | /data/data/<packagename>/cache/1600739295328.jpg | |||
描述 | 对应着应用程序的内部缓存,用来存储临时数据。系统空间不足时可能会被自动清除,应用卸载后该目录下的数据会被清空。 | |||
内部存储 | ||||
方法 | context.getFilesDir() | |||
路径 | /data/data/<packagename>/files/1600739295328.jpg | |||
描述 | 对应着应用程序的内部存储,用来存储临时数据。系统空间不足时可能会被自动清除,应用卸载后该目录下的数据会被清空。 | |||
外部缓存 | ||||
方法 | context.getExternalCacheDir() | |||
路径 | /storage/sdcard/Android/data/<packagename>/cache/1600739295328.jpg | |||
描述 | 对应着应用程序内的外部缓存,同样是用来存储临时数据的。但由于脱离了应用管理,因此并不会在空间不足时被自动清除,但应用卸载后该目录下的数据会被清空。 | |||
外部存储 | ||||
方法 | context.getExternalCacheDir() | |||
路径 | /storage/sdcard/Android/data/<packagename>/files/1600739295328.jpg | |||
描述 | 对应着应用程序内的外部存储,同样是用来存储临时数据的。但由于脱离了应用管理,因此并不会在空间不足时被自动清除,但应用卸载后该目录下的数据会被清空。 | |||
应用存储 | ||||
方法 | context. getDir(String name, int mode) | |||
路径 | /data/data/<packagename>/app_name | |||
描述 | 获取 /data/data/<packagename>/app_name 目录,如果不存在名为 app_name 的目录,就创建它,路径中的 app 会在目录创建时自动加上。 | |||
取值 |
|
注意,表中大多数方法返回了标准 Java 类实例,如 java.io.File 或 java.io.FileInputStream。如同其他 Java 应用中各种 Java API 的配合使用,这里也可以将现有的 Java API 与表中 Context 类方法返回的类搭配使用。Android 也支持 java.nio.* 包中提供的各种类。