外部存储external storage和内部存储internal storage
1.内部存储:
内部存储位于系统中很特殊的一个位置,如果你想将文件存储于内部存储中,那么文件默认只能被你的应用访问到,且一个应用所创建的所有文件都在和应用包名相同的目录下。也就是说应用创建于内部存储的文件,与这个应用是关联起来的。当一个应用卸载之后,内部存储中的这些文件也被删除。
getFilesDir()获取你app的内部存储空间,相当于你的应用在内部存储上的根目录。
内部存储总是可用的
这里的文件默认是只能被你的app所访问的。
当用户卸载你的app的时候,系统会把internal里面的相关文件都清除干净。
Internal是在你想确保不被用户与其他app所访问的最佳存储区域。如果是要创建一个文件,如下
1
File file = newFile(context.getFilesDir(), filename);
安卓还为我们提供了一个简便方法 openFileOutput()来读写应用在内部存储空间上的文件;Context.fileList();列出所有的已创建的文件
Context.deleteFile(filename)删除文件;Context.getDir(dirName, Context.MODE_PRIVATE);创建一个目录,需要传入目录名称;
一.保存到内部存储的方式
1.getFileDir() 通过此方法可以获取到你的APP内部存储的文件,路径为/data/data/pacgage_name/files
我们直接上代码进行测试:
File file1 = new File(getFilesDir(), "getFilesDir.txt");
try {
OutputStream outputStream1 = new FileOutputStream(file1);
outputStream1.write("file".getBytes());
outputStream1.close();
} catch (Exception e) {
e.printStackTrace();
}
运行结果:
2021-01-22 14:06:23.495 3698-3698/com.example.file I/file: onCreate:
/data/user/0/com.example.file/files/getFilesDir.txt
2.getCacheDir() 通过此方法可以获取到你的APP内部存储的文件,路径为/data/data/package_name/cache
测试代码:
File file2 = new File(getCacheDir(), "cache.txt");
Log.d("TAG", "file2=" + file2.getAbsolutePath());
try {
OutputStream outputStream1 = new FileOutputStream(file2);
outputStream1.write("cache"