サーバーに HTTP GET リクエストを発行して、テキスト データをダウンロードしています。ダウンロードしたテキスト ファイルを保存して、既にダウンロードされている場合は、要求に応じて再利用したいと考えています。しかし、他のアプリがアクセスできないように、データを非公開にしたい. 一方、十分なディスク容量がない場合は、Android がそのファイルを削除しても問題ありません。
それで、私の質問は - ダウンロードしたコンテンツを App Data フォルダーまたはキャッシュフォルダーに保存する必要がありますか? 2つに違いはありますか?
まず、次のような方法を使用して、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();
}
}
ファイルにプライベート属性を設定することはできなくなったので、私が理解しているように、どのアプリケーションも私のデータにアクセスできます。私は正しいですか?
キャッシュディレクトリ内のファイルを非公開にする方法はありますか? それとも、ファイルをどこに保存するかは問題ではありませんか?