У меня есть список пользовательских объектов, которые я пишу и затем читаю в файл.
Вот мой класс:
public class Book implements Serializable{
private int isbn;
private String category;
private String authorName;
public int getIsbn() {
return isbn;
}
public String getCatId() {
return category;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public void setCategory(String category) {
this.category = category;
}
public void setAuthorName(String authorName) {
this.authorName = authorName;
}
public String getAuthorName() {
return authorName;
}
public Book() {}
//copy book
public Book(Book book, int id) {
this.category = book.category;
this.title = book.title;
this.authorName = book.authorName;
this.isbn = id;
}
}
Вот функция, которую я использую для написания списка объектов:
private static <T> void writeToFile(List<T> items, String fileName) {
try {
String path = "src\\hw1\\library\\repos\\" + fileName;
FileOutputStream f = new FileOutputStream(path, true);// true- means append to file
ObjectOutputStream o = new ObjectOutputStream(f);
// Write objects to file
o.writeObject(items);
o.close();
f.close();
} catch (Exception e) {}
}
А вот функция, которую я вычеркнул из списка:
private static <T> List<T> readFromFile(Context context, String fileName) {
try {
String path = "src\\hw1\\library\\repos\\" +fileName ;
FileInputStream fi = new FileInputStream(path);
ObjectInputStream oi = new ObjectInputStream(fi);
// Read objects
List<T> items = (List<T>)oi.readObject();
oi.close();
fi.close();
return items;
} catch (Exception e) {}
return null;
}
Список объектов записывается в файл,
но когда я пытаюсь прочитать его с помощью функции над объектами, которые я получаю из файла, только объекты, которые были записаны в файл в первый раз.
Есть идеи, почему я получаю из файла только те объекты, которые были записаны в файл в первый раз?