2016-05-18 13 views
0

Ich habe versucht, ein Objekt zu speichern und zu laden, aber es funktioniert nicht. Wenn ich es sagen zu retten, ich habe dies:Speichern/Laden funktioniert nicht auf Android

public void doSave(View v) { 
    ObjectOutputStream out; 
    try { 
     FileOutputStream outFile = new FileOutputStream("testThingy321.ser"); 
     out = new ObjectOutputStream(outFile); 
     out.writeObject(hero); 
     out.close(); 
     outFile.close(); 
    } catch (Exception e) {e.printStackTrace();} 
} 

Und wenn ich es sagen zu laden, ich habe dies:

try { 
      FileInputStream fileIn = new FileInputStream("testThingy321.ser"); 
      ObjectInput in = new ObjectInputStream(fileIn);  
      hero = (Protag) in.readObject(); 
      in.close(); 
      fileIn.close(); 
     } catch (Exception e) {e.printStackTrace();} 

ich, wie nicht gut genug Verständnis haben diese Werke zu sagen, warum es nicht funktioniert, und es ist so ziemlich das, was die Proben, die ich gefunden habe, mir gesagt haben. Es scheint jedoch nie etwas zu tun. Kann mir jemand sagen, was ich tun müsste, um es speichern oder laden zu lassen?

Edit: Ich überprüfte die logcat und ich diese bekommen:

05-17 22: 25: 46,098: W/System.err (24774): java.io.FileNotFoundException: testThingy321.ser: offen fehlgeschlagen: EROFS (Read-only-Dateisystem)

+1

Überprüfen Sie Ihre logcat, höchstwahrscheinlich ausgedruckt dort Fehler zu sein, und sind nicht sie zu sehen – Nullpoint

Antwort

1

Ihre Protag Klasse sollte Serializable-Schnittstelle implementieren und readObject und writeObject Methoden definieren, wie hier Serialization - readObject writeObject overrides beschrieben

+0

Könnte hilfreich sein, aber es tut immer noch arbeite nicht. – aattss

+0

Versuchen Sie dies, um Ihre Datei zu finden String filePath = context.getFilesDir(). GetPath(). ToString() + "/"testThingy321.ser") "; FileOutputStream outFile = new FileOutputStream (neue Datei (filePath); –