2014-02-21 56 views
0

我一直在做Android的一些工作,我發現三四次不同的嘗試後,我似乎無法讓Android保存我的文件在任何地方。事實上,它甚至不會在數據/我的應用程序中創建文件夾。Android不保存文件

下面是我如何保存文件 - 這也是我的主要活動。

@Override 
public void onStop(){ 
    super.onStop(); 

    try{ 
     FileOutputStream memboricOut = getApplicationContext().openFileOutput("memboric.core", Context.MODE_PRIVATE); 
     brain.save(memboricOut); 
    }catch(Exception e){ 
     System.err.println("Could not save memboric core."); 
     e.printStackTrace(); 
    } 
} 

而且裏面brain.save():

public boolean save(FileOutputStream fileOut) { 
    try{ 
     ObjectOutputStream oo = new ObjectOutputStream(fileOut); 
     oo.writeObject(this); 
     oo.close(); 
     fileOut.close(); 
     System.out.println("Memboric Core saved successfully."); 
     return true; 
    }catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return false; 
} 

此代碼似乎什麼也不做。我也將保存在onDestroy中。

我剛纔選擇了保存位置不當嗎?我無法想象可能出現什麼問題。

回答

1

您是否有權限保存文件? 您可以添加android.permission.WRITE_EXTERNAL_STORAGE權限給您的AnroidManifest.xml。

+0

你好。這工作,有點。儘管Brain是另一個獨立的課程,但我並沒有從主要活動中收到「不可序列化的例外」。 – Brayden

0

oo.writeObject(this);

大腦是否有可序列化的數據?

Class Brain implements java.io.Serializable { 
    public String toString() { 
     return "serialized data"; 
    } 
} 

如果不是,DataOutputStream可能是一個更好的選擇。

DataOutputStream oo = new DataOutputStream(fileOut); 
oo.writeInt(value); // if breain have int value 
oo.flush(); 
oo.close(); 

保存的數據將被顯示在/data/data/(your.package.name)/files/memboric.core
檢查與仿真器(或根設備)的文件。