Java JPA 将对象写入二进制文件

Java JPA write object to binary file

你不是每次循环都覆盖文件吗?

for(User user: list){
    //overwrites the file on each loop
    FileOutputStream fos = new FileOutputStream("test.dat");
    ObjectOutputStream oos = new ObjectOutputStream(fos);

    oos.writeObject(user);
    oos.close();
}

您需要为每个用户创建一个新文件,或者写入整个列表并读回。

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());
}