在追加时将对象写入文件 [英] Writing objects to file while appending

查看:111
本文介绍了在追加时将对象写入文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个程序,该程序注册了图书馆系统的成员.为了存储数据,我使用了文本文件并进行了读/写操作,并实现了序列化.

I have created a program which registers members for a library system. To store the data i have used text files and to read/write i implemented serialization.

我的问题是,当我注册一个成员并尝试注册另一个成员时,第二个成员记录将无法保存.为了向文件追加写入,我还使用了关键字"true".

My problem is when i register one member and try to register another member, the second member records won't get saved. To append writing to the file i used the keyword "true" as well.

这是我所做的:

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

这里似乎是什么错误?我希望在编写时将其附加.

What seems to be the error here? I want it to append when writing.

谢谢您的时间.

推荐答案

我认为您正在寻找创建的主题(现已解决).

I think that the topic I created (It is solved now) is what you are looking for.

您不能附加到使用ObjectOutputStream创建的现有文件,至少要费劲.在某个地方有一个技巧,就是扩展ObjectOutputStream并覆盖`writeStreamHeader()方法,以免第二个秒写流头时间(...)"-由EJP回答

"You can't append to an existing file created with an ObjectOutputStream, at least not without effort. There is a trick somewhere about extending ObjectOutputStream and overriding the `writeStreamHeader() method so as not to write the stream header the second time (...)" - answered by EJP

请在这里查找我的主题:

Please have look for my topic here:

您还可以查看下面的链接

You can also check the link below

这是您要找的东西吗?

这篇关于在追加时将对象写入文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆