当前位置: 首页 > 面试题库 >

如何将Java序列化的对象写入和读取到文件中

景令秋
2023-03-14
问题内容

我将多个对象写入文件,然后在代码的另一部分中检索它们。我的代码没有错误,但是无法正常工作。您能帮我发现我的代码有什么问题吗?我从不同的网站阅读了不同的代码,但是没有一个对我有用!

这是将对象写入文件的代码:MyClassList是一个数组列表,其中包含我的类的对象(必须将其写入文件)。

for (int cnt = 0; cnt < MyClassList.size(); cnt++) {
    FileOutputStream fout = new FileOutputStream("G:\\address.ser", true);
    ObjectOutputStream oos = new ObjectOutputStream(fout);
    oos.writeObject(MyClassList.get(cnt));
}

我向输出流的构造函数添加了“ true”,因为我想将每个对象都添加到文件的末尾。那是对的吗?

这是我从文件中读取对象的代码:

 try {
     streamIn = new FileInputStream("G:\\address.ser");
     ObjectInputStream objectinputstream = new ObjectInputStream(streamIn);
     MyClass readCase = (MyClass) objectinputstream.readObject();
     recordList.add(readCase);
     System.out.println(recordList.get(i));
 } catch (Exception e) {
     e.printStackTrace();
 }

最后,它仅打印出一个对象。现在,我不知道我书写或阅读不正确!


问题答案:

为什么不立即序列化整个列表?

FileOutputStream fout = new FileOutputStream("G:\\address.ser");
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(MyClassList);

当然,假设MyClassList是一个ArrayListor LinkedList或另一个Serializable集合。

在将其读回的情况下,在代码中您仅准备了一项,就没有循环来收集所有已写入的项。



 类似资料:
  • 我必须将对象(播放器)保存到文件列表中,然后当我再次打开程序时,我必须与播放器一起读取该文件并将其添加到列表中。但是我读这个文件有问题吗?我做错了什么? ///////////////////////////// }

  • 我试图将包含Contact类型的序列化对象的文件读入ArrayList ContactsCollection。我遇到的问题是联系的对象从未添加到ArrayList中。

  • 我正在做一个项目,我希望用户能够将对象输入到ArrayList中,关闭程序,并能够再次打开程序,并且用户可以访问以前的ArrayList(从第一次运行开始)。 我目前将用户输入对象放入ArrayList中,该列表序列化ArrayList并将其保存为。bin文件。当我再次运行该程序时,上一个列表将被保存,但当我输入新值时,它将覆盖旧列表。我想我正在寻找一种方法来查看我的.bin文件是否存在,如果存在

  • 问题内容: 我正在为Android设计一个手写应用程序。 每当用户按下Enter键时,我都希望将信息()写入日志文件。 之后,我想读取存储的信息。 这是我的类的一部分,带有自定义的write方法: 这是读取方法: 当我在文件中仅保存一个对象时,它会很好地工作。当我尝试节省更多时,阅读不起作用(抛出)。 它在while循环中仅读取一个对象! 在主类中,我仅使用两种简单的方法: 定义为: 请求的更新:

  • 我正在编写一个非常简单的程序GUI程序来模拟手机。“手机”有四个主要按钮:电话、通讯录、信息和应用程序。我编写了所有的GUI,在使用Contact类时遇到了一个问题,它是整个程序的主干! Contact类非常简单,它有两个String类型的实例变量,分别是“name”和“number”。我想构建一个Contact类型的ArrayList,允许添加联系人,然后创建方法来附加到序列化文件并从中读取。

  • 问题内容: 我想将一个对象写入CSV文件。对于XML,我们有XStream的像这样 所以,如果我想转换对象CSV我们是否有任何这样的图书馆吗? 编辑: 我想将我的Bean列表传递给应该将Bean的所有字段都写入CSV的方法。 问题答案: 首先,序列化是将对象“按原样”写入文件。AFAIK,您不能选择文件格式和全部。序列化的对象(在文件中)具有自己的“文件格式” 如果要将对象(或对象列表)的内容写入