私は以下の関数を使ってオブジェクトを外部ストレージに書き出しています。書き出したデータを外部ストレージから削除する方法は?
使用した後、私はそのオブジェクトを外部記憶装置から削除してメモリを解放します。 私は何をすればいいですか?
public boolean saveObject(List<DalCategories> obj) {
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
cacheDir=new File(android.os.Environment.getExternalStorageDirectory(),"MyCustomObjectForSearchFilter");
} else {
cacheDir= getCacheDir();
if(!cacheDir.exists()) {
cacheDir.mkdirs();
}
final File suspend_f = new File(cacheDir, "test");
FileOutputStream fos = null;
ObjectOutputStream oos = null;
boolean keep = true;
try {
fos = new FileOutputStream(suspend_f);
oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
} catch (Exception e) {
keep = false;
} finally {
try {
if (oos != null) {
oos.close();
}
if (fos != null) {
fos.close();
}
if (keep == false) {
suspend_f.delete();
}
} catch (Exception e) {
keep = false;
}
}
return keep;
}
.deleteメソッドを呼び出した後、そのファイルを外部ストレージから直接削除しますか? – UMAR
はい...あなたはそれをやろうとしましたか? – Cristian
また、何か理由がある場合を除き、私はすべての場合にgetCacheDir()を使用したいと思います。これにより、カードの書き込み中にユーザーがカードをアンマウントし、アンインストール時にファイルが確実に削除されるようにするには、何も問題がないことが保証されます。 –