gpt4 book ai didi

java - 输出对象到文件

转载 作者:行者123 更新时间:2023-12-02 07:44:32 25 4
gpt4 key购买 nike

我正在寻找一种将实例化类(对象)输出到文件的方法。我尝试过使用 FileStream,但它似乎不起作用。经过研究,似乎我需要使用一种称为“序列化”的技术。我对这个话题完全迷失了。有人可以帮我调试这段代码吗?我有一种预感,问题的发生是因为我试图在普通类中序列化抽象类。抽象类是java.util.Calendar。

class CalendarL implements java.io.Serializable{
private static final long serialVersionUID = 1L;

java.util.Calendar calendar;

CalendarL (int date, int month, int year){
calendar.set (Calendar.DATE, date);
calendar.set (Calendar.MONTH, month);
calendar.set (Calendar.YEAR, year);
}
}

class IO {
protected CalendarL reader() throws IOException, ClassNotFoundException{
FileInputStream data = new FileInputStream("data.dat");
ObjectInputStream dataObject = new ObjectInputStream(data);

CalendarL calendar = (CalendarL)dataObject.readObject();

dataObject.close();
data.close();

return calendar;
}


protected void output(CalendarL calendar) throws IOException, WriteAbortedException, NotSerializableException {
new FileOutputStream("data.dat").close();

FileOutputStream data = new FileOutputStream("data.dat");
ObjectOutputStream dataObject = new ObjectOutputStream(data);

dataObject.writeObject(calendar);
dataObject.close();
data.close();
}

}

这是我得到的错误:

Exception in thread "main" java.io.NotSerializableException: hotelres.ClientL
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)

最佳答案

I have a hunch that the problem is occurring because I am trying to serialize an abstract class within a normal class. The abstract class is java.util.Calendar.

这种预感是不正确的。您序列化实例(而不是类),并且实例的类不能是抽象类。此外,Calendar确实实现了Serialized ... javadoc 是这么说的。

关于java - 输出对象到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11076725/

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