gpt4 book ai didi

java - 追加时将对象写入文件

转载 作者:行者123 更新时间:2023-12-01 23:39:05 26 4
gpt4 key购买 nike

我创建了一个为图书馆系统注册成员(member)的程序。为了存储数据,我使用了文本文件,为了读/写,我实现了序列化。

我的问题是,当我注册一个成员(member)并尝试注册另一个成员(member)时,第二个成员(member)记录将不会被保存。为了将写入附加到文件中,我还使用了关键字“true”。

这是我所做的:

//Am writing the object to a file

public void RegisterMembers(Members object) {
try{

FileOutputStream write=new FileOutputStream("Memberships.txt",true);
ObjectOutputStream writeFile=new ObjectOutputStream(write);

writeFile.writeObject(object);
writeFile.flush();
writeFile.close();

}catch(Exception e){
Frame frame=new Frame();
JOptionPane.showMessageDialog(frame,"Storage file not found");
}


}


//Method to read from the file
public void readMemberships() throws FileNotFoundException, IOException, ClassNotFoundException{
Person object;


FileInputStream read=new FileInputStream("Memberships.txt");
ObjectInputStream readFile=new ObjectInputStream(read);

object=(Person)readFile.readObject();

System.out.println(object);



}

//Here is a piece of code which is in the gui frame which i implemented
Members newMember=new Members(firstName,initials,birthDay,birthMonth,birthYear,Gender,memberid,address,tele,membershipType,paymentType);

newMember.RegisterMembers(newMember); //calls the 2 methods

newMember.readMemberships();

这里似乎有什么错误?我希望在写入时附加它。

感谢您的宝贵时间。

最佳答案

我认为我创建的主题(现已解决)就是您正在寻找的内容。

“你不能追加到使用 ObjectOutputStream 创建的现有文件,至少不能不费力。有一个关于扩展 ObjectOutputStream 并覆盖`writeStreamHeader() 方法的技巧,这样就不会在第二次写入流头时间 (...)"- 由 EJP 回答

请在这里查找我的主题:

您还可以查看下面的链接

这是您要找的吗?

关于java - 追加时将对象写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18224333/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com