我正在使用以下功能将对象写入外部存储。
使用后,我想从外部存储中删除该对象以释放内存。 任何人都可以指导我该怎么办?
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;
}
答案 0 :(得分:0)
在你的情况下......
final File suspend_f=new File(cacheDir, "test");
boolean success = suspend_.delete();
// the success variable will have TRUE if the file was deleted
答案 1 :(得分:0)
将Java文件I / O用于delete files或directories。
答案 2 :(得分:0)
您可以在文件对象上调用deleteOnExit()。这将告诉虚拟机在虚拟机结束后可以删除文件。这不会立即释放空间,但应用程序关闭后(这可能需要一些时间在Android上)。如果文件中没有合理的数据,这应该是一个简单的失败保存解决方案。