我通过向服务器发出 HTTP GET 请求来下载一些文本数据。如果已经下载,我想保存下载的文本文件以根据要求重新使用它。但我想将我的数据保密,以便其他应用程序无法访问它。另一方面,如果没有足够的磁盘空间,Android 可以删除这些文件。
所以,我的问题是 - 我应该将下载的内容存储在 App Data 文件夹还是缓存文件夹中?两者有什么区别吗?
首先,我曾经使用类似的方法将文件保存在 App Data 文件夹中
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();
}
}
我无法再为我的文件设置 Private 属性,因此,据我所知,任何应用程序都可以访问我的数据。我对吗?
也许有一种方法可以将缓存目录中的文件设为私有?或者将文件保存到哪里并不重要?