如何从外部存储中删除写入的数据?

时间:2011-01-06 13:35:10

标签: android

我正在使用以下功能将对象写入外部存储。

使用后,我想从外部存储中删除该对象以释放内存。 任何人都可以指导我该怎么办?

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; 
   }

3 个答案:

答案 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 filesdirectories

答案 2 :(得分:0)

您可以在文件对象上调用deleteOnExit()。这将告诉虚拟机在虚拟机结束后可以删除文件。这不会立即释放空间,但应用程序关闭后(这可能需要一些时间在Android上)。如果文件中没有合理的数据,这应该是一个简单的失败保存解决方案。