Qualcuno sa come salvare e ripristinare un oggetto su un file su Android?android come salvare un oggetto in un file?
risposta
Vedi qui per un esempio di codice: android how to save a bitmap - buggy code
Dipende se si desidera salvare il file su un supporto interno o esterno. Per entrambi situazione ci sono grandi campioni in loco DEV Android: http://developer.android.com/guide/topics/data/data-storage.html - questo dovrebbe sicuramente aiutare
Aprire un file mediante openFileOutput() (http://developer.android.com/guide/topics/data/data-storage.html#filesInternal), di utilizzare un ObjectOutputStream (http://download.oracle.com/javase/1.4.2/docs/api/java/io/ObjectOutputStream.html) per scrivere l'oggetto in un file.
utilizzare i loro openFileInput Evil Twin() e ObjectInputStream() per invertire il processo.
Ecco un esempio collaudato di suggestione @ di yayay. Si noti che l'utilizzo di readObject()
restituisce un Object
, quindi sarà necessario eseguire il cast, anche se il compilatore si lamenterà che si tratta di un cast non controllato. Posso ancora eseguire il mio codice bene però. Puoi leggere ulteriori informazioni sul problema del casting here.
Basta fare in modo che la classe (nel mio caso, ListItemsModel
) è serializzabile, perché il writeObject()
sarà serializzare l'oggetto, e il readObject()
si deserializzare esso. Se non lo è (non ottieni persistenza e il logcat lancia un NotSerializableException
), assicurati che la tua classe implementa java.io.Serializable
e sei a posto. Nota, nessun metodo deve essere implementato in questa interfaccia. Se la tua classe non può implementare Serializable
e lavorare (ad esempio classi di librerie di terze parti), this link ti aiuta a serializzare il tuo oggetto.
private void readItems() {
FileInputStream fis = null;
try {
fis = openFileInput("groceries");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
ObjectInputStream ois = new ObjectInputStream(fis);
ArrayList<ListItemsModel> list = (ArrayList<ListItemsModel>) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
private void writeItems() {
FileOutputStream fos = null;
try {
fos = openFileOutput("groceries", Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(itemsList);
} catch (IOException e) {
e.printStackTrace();
}
}
- 1. Come salvare un oggetto QPixmap in un file?
- 2. Come salvare un dizionario in un file?
- 3. Come salvare un'immagine WPF in un file
- 4. Come salvare un ambiente autonomo R oggetto
- 5. Come salvare l'output di un file console.log (oggetto) in un file?
- 6. Come salvare un documento Jsoup in un file HTML?
- 7. Come salvare un oggetto con riferimenti circolari?
- 8. Come posso salvare un file su MongoDB?
- 9. Posso salvare un 'oggetto' in un database SQL Server?
- 10. android come salvare un bitmap - codice buggy
- 11. Salvare l'output di un file php in un file html
- 12. Git: Come salvare un file cancellato manualmente?
- 13. Come generare bytecode e salvare in un file .class?
- 14. Come salvare i file su un iPhone?
- 15. Chrome: Come salvare un file su disco
- 16. come clonare un oggetto in Android?
- 17. Esiste un processo standard per salvare Formattazione/Impostazioni file Excel in un oggetto?
- 18. Come salvare un array come file JSON in Swift?
- 19. Come salvare una stringa in un file .txt in Delphi?
- 20. Come archiviare un oggetto in un database SQLite in Android?
- 21. Come salvare un cookie in una webview Android per sempre?
- 22. Come salvare un file immagine su un database Postgres?
- 23. Come analizzare un file CSV, aggiornare un campo, quindi salvare
- 24. Come salvare un file su disco in modo sicuro in Android?
- 25. Come posso salvare HICON in un file .ico?
- 26. Come salvare i dati con GSON in un file JSON?
- 27. Come salvare i cookie delle richieste (python) in un file?
- 28. Come salvare una trama Seaborn in un file
- 29. Come salvare il sommario (lm) in un file?
- 30. Come salvare un'immagine di controllo grafico in un file?
Voglio salvarlo in interno. Sto guardando ObjectOutputStream adesso e sembra interessante ma non so perché, non posso ottenere "fos = openFileOutput (filename, Context.MODE_PRIVATE);" per funzionare, non accetta il mio parametro String filename ... cosa diavolo ???? – Fabien
Ive ha scoperto che è un problema di contesto. – Fabien