Do you rewrite the file in each loop?
for(User user: list){
FileOutputStream fos = new FileOutputStream("test.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(user);
oos.close();
}
You need to either create a new file for each user, or write the entire list and read it back.
FileOutputStream fos = new FileOutputStream("test.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(list);
oos.flush();
oos.close();
FileInputStream fis = new FileInputStream("test.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
List<User> users = (List<User>) ois.readObject();
ois.close();
for(User user : users){
System.out.println(user.getID() +" " + user.getName());
}
source
share