我正在通过向服务器发出HTTP GET请求下载一些文本数据。如果已经下载了文件,则希望将其保存以便在请求时重复使用。但我希望保护我的数据私密性,以确保没有其他应用程序可以访问它。另一方面,如果磁盘空间不足,Android删除这些文件也是可以的。
因此,我的问题是 - 我应该将下载的内容存储在App数据文件夹还是缓存文件夹中?两者之间有什么区别吗?
首先,我曾经使用过将文件保存在App数据文件夹中的方法:
public void save(String fileName, String data) {
FileOutputStream fos;
try {
fos = mContext.openFileOutput(fileName, Context.MODE_PRIVATE);
fos.write(data.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
使用这种方法,我可以为我的文件设置私密模式,以便其他应用程序无法访问它们。但是当我考虑将文件移动到缓存目录时,我需要执行类似以下操作:
private void save(String filename, String data) {
File cacheDir = new File(mContext.getCacheDir(), "app_directory");
cacheDir.mkdir();
try {
FileOutputStream fos = new FileOutputStream(new File(cacheDir, filename));
fos.write(data.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
我不能再将文件设置为私有属性,因此,据我所知,任何应用程序都将能够访问我的数据。我是正确的吗?
也许有一种方法可以使缓存目录中的文件保持私密性?或者将文件保存在哪里并不重要?