Кто-нибудь знает, как сохранить и восстановить объект в файле на Android?android Как сохранить объект в файл?
ответ
Смотрите здесь для примера кода: android how to save a bitmap - buggy code
Это зависит от того, хотите ли вы сохранить файл на внутреннем или внешнем носителе. Для оба ситуаций есть большие образцы на сайте Android Dev: http://developer.android.com/guide/topics/data/data-storage.html - это должно определенно помочь
Открыть файл с помощью openFileOutput() (http://developer.android.com/guide/topics/data/data-storage.html#filesInternal), чем использовать ObjectOutputStream (http://download.oracle.com/javase/1.4.2/docs/api/java/io/ObjectOutputStream.html), чтобы записать объект в файл.
Используйте их злые двойники openFileInput() и ObjectInputStream(), чтобы отменить процесс.
Вот пример, приведенный в предложении @ yayay. Обратите внимание, что с использованием readObject()
возвращается Object
, поэтому вам нужно будет выполнить бросок, хотя компилятор будет жаловаться на то, что это неконтролируемый отбор. Тем не менее, я все равно могу запустить свой код. Вы можете больше узнать о проблеме литья here.
Просто убедитесь, что ваш класс (в моем случае, ListItemsModel
) сериализует, потому что writeObject()
будет сериализовать объект, и readObject()
будет десериализацией его. Если это не так (вы не получаете постоянства, а logcat выбрасывает NotSerializableException
), то убедитесь, что ваш класс реализует java.io.Serializable
, и вам хорошо идти. Обратите внимание: никакие методы не требуют реализации в этом интерфейсе. Если ваш класс не может реализовать Serializable
и работать (например, сторонние классы библиотеки), this link поможет вам сериализовать ваш объект.
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. Как сохранить объект PdfDocument в файл в android?
- 2. Как сохранить объект Android Path как файл SVG?
- 3. Сохранить объект email.Message в файл
- 4. Как сохранить векторный объект в android?
- 5. Как сохранить измененный объект SimpleXML в файл?
- 6. Как сохранить объект TableGrob в файл
- 7. Как сохранить объект QPixmap в файл?
- 8. Сохранить файл в Android
- 9. Как сохранить пользовательский объект Java в Android?
- 10. Невозможно сохранить объект hashmap в файл в android
- 11. Как сохранить объект эффективно в Android
- 12. android, как преобразовать bitmap в файл-объект
- 13. Android - Сохранить объект с помощью Bitmap в файл
- 14. Сохранить файл в android памяти
- 15. Сохранить объект json как текстовый файл
- 16. Android - сохранить в текстовый файл
- 17. Android: попытка сохранить файл
- 18. Как сохранить HashMap в файл на Android?
- 19. Как сохранить пароль в файл на Android?
- 20. Как сохранить файл изображения в android?
- 21. Android, как сохранить ускорение в файл
- 22. Как сохранить .txt-файл в SQLite Android
- 23. Как сохранить файл-файл в файл полки?
- 24. Android: сохранить внутренний файл
- 25. Невозможно сохранить и загрузить объект в файл
- 26. Выберите, где сохранить файл в android
- 27. Сохранить объект Android не работает
- 28. Как сохранить объект в файле?
- 29. Как сохранить большой файл json в файл?
- 30. Как сохранить и восстановить объект в файл в Matlab?
Я хочу сохранить его на внутреннем. Im просматривает ObjectOutputStream сейчас и его интерес интересен, но не знаю почему, не может получить «fos = openFileOutput (имя файла, Context.MODE_PRIVATE)»; для работы, он не принимает мой параметр имени файла String ... что это за черт ???? – Fabien
Ive узнал, что это проблема контекста. – Fabien