Có ai biết cách lưu và khôi phục đối tượng vào một tệp trên Android không?android làm thế nào để lưu một đối tượng vào tập tin?
Trả lời
Xem ở đây cho một ví dụ mã: android how to save a bitmap - buggy code
Tùy thuộc vào việc Bạn muốn lưu tệp trên phương tiện nội bộ hay bên ngoài. Đối với cả hai tình huống có mẫu lớn trên Android DEV trang web: http://developer.android.com/guide/topics/data/data-storage.html - điều này chắn sẽ giúp
Mở một tập tin sử dụng openFileOutput() (http://developer.android.com/guide/topics/data/data-storage.html#filesInternal), vì sử dụng một ObjectOutputStream (http://download.oracle.com/javase/1.4.2/docs/api/java/io/ObjectOutputStream.html) để viết đối tượng của bạn vào một tập tin.
Sử dụng đôi openFileInput() và ObjectInputStream() của họ để đảo ngược quá trình.
Dưới đây là ví dụ được kiểm tra về đề xuất của @ yayay. Lưu ý rằng việc sử dụng readObject()
trả về một Object
, vì vậy bạn sẽ cần truyền, mặc dù trình biên dịch sẽ khiếu nại rằng đó là một diễn viên không được chọn. Tôi vẫn có thể chạy mã của tôi tốt mặc dù. Bạn có thể đọc thêm về sự cố truyền here.
Chỉ cần đảm bảo rằng lớp học của bạn (trong trường hợp của tôi là ListItemsModel
) được nối tiếp, vì writeObject()
sẽ tuần tự hóa đối tượng của bạn và readObject()
sẽ hủy kích hoạt đối tượng đó. Nếu nó không phải là (bạn không nhận được sự kiên trì và logcat ném một NotSerializableException
), sau đó hãy chắc chắn rằng lớp học của bạn thực hiện java.io.Serializable
, và bạn tốt để đi. Lưu ý, không có phương thức nào cần triển khai trong giao diện này. Nếu lớp học của bạn không thể triển khai Serializable
và hoạt động (ví dụ: các lớp thư viện của bên thứ ba), this link sẽ giúp bạn sắp xếp hàng loạt đối tượng của mình.
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. Làm thế nào để lưu tập tin vào thẻ sd
- 2. Làm thế nào để tạo ra đối tượng tập tin từ đối tượng URL
- 3. Cách viết một đối tượng vào tập tin trong C++
- 4. Làm thế nào để thêm một cột từ một tập tin vào một tập tin
- 5. Làm thế nào để nhúng một tập tin vào một tập tin HTML?
- 6. Làm thế nào để nối thêm vào một tập tin văn bản trong Android?
- 7. Làm thế nào để lưu đối tượng C++ vào một tệp xml và khôi phục lại?
- 8. Lưu/mở Java Các đối tượng tập tin
- 9. Làm thế nào để xuất khẩu R đối tượng ma trận để Txt tập tin
- 10. Lưu một đối tượng BufferedImage đến Amazon S3 như một tập tin
- 11. Android Làm thế nào để kiểm tra số lượng tập tin trong một thư mục
- 12. Làm thế nào để lưu một băm vào một CSV
- 13. Làm thế nào để lưu trữ một bảng băm trong một tập tin?
- 14. python làm thế nào để thêm vào tập tin trong kho lưu trữ zip
- 15. Làm thế nào để lưu mảng bị che khuất vào tập tin
- 16. Làm thế nào để kiểm tra đối tượng COM từ tập tin Dump Visual Basic?
- 17. Làm thế nào để lưu trữ đối tượng lớp trong sharedPreference android?
- 18. Làm cách nào để tuần tự hóa một đối tượng và lưu nó vào một tệp trong Android?
- 19. Lưu dữ liệu cảm biến vào tập tin trong android
- 20. Làm thế nào để viết một Mat phao vào một tập tin trong OpenCV
- 21. Android lưu trữ tập tin sử dụng
- 22. làm thế nào để có được một biến từ một tập tin vào một tập tin trong Node.js
- 23. Làm thế nào để viết văn bản vào một tập tin văn bản bằng Photoshop JavaScript?
- 24. Truyền tập tin từ xa vào các đối tượng tập tin
- 25. Làm thế nào để lưu tệp vào đĩa một cách an toàn trong Android?
- 26. Lưu và tải MemoryStream vào/từ một tập tin
- 27. Làm thế nào để lưu một đối tượng etree xml? tiết kiệm bốc lxml vấn đề đối tượng etree
- 28. Làm thế nào để có được đường dẫn đầy đủ của tập tin từ một tập tin đầu vào
- 29. Làm thế nào để đọc nội dung tập tin vào một biến trong một tập tin thực thi?
- 30. Cách lưu một đối tượng vào một tệp trong Delphi
Tôi muốn lưu nó vào nội bộ. Im xem ObjectOutputStream bây giờ và nó trông thú vị nhưng không biết tại sao, không thể nhận được "fos = openFileOutput (tên tệp, Context.MODE_PRIVATE);" để làm việc, nó không chấp nhận tham số filename String của tôi ... địa ngục là gì ???? – Fabien
Tôi phát hiện ra rằng đó là một vấn đề của bối cảnh. – Fabien