当前位置: 首页 > 知识库问答 >
问题:

写入可序列化文件时出错

何烨华
2023-03-14

我正在编程一个简单的Java gmail客户端来完成我的a级项目。当下面的代码段运行时,我总是得到一个错误。我找不出为什么会有错误。

public static void save(List<user> u3){
    try {

        FileOutputStream fos=new FileOutputStream("users.ser");
        ObjectOutputStream oos= new ObjectOutputStream(fos);
        oos.writeObject(u3);

    }catch (Exception e) {
        e.printStackTrace(); //Added due to suggestion of commentor
    }   
}

错误是:

Java.io.NotSerializableException:用户在Java.io.ObjectOutputStream.WriteObject0(ObjectOutputStream.Java:1184)在Java.io.ObjectOutputStream.WriteObject(ObjectOutputStream.Java:348)在Java.util.ArrayList.WriteObject(ObjectOutputStream.Java:348)在sun.reflect.NativeMethodAccessorImpl.Invoke0(原生方法)在CT.NativeMethodAccessorImpl.Invoke0(本机方法)在Sun.Reflect.NativeMethodAccessorImpl.Invoke(NativeMethodAccessorImpl.java:62)在Sun.Reflect.DelegatingMethodAccessorImpl.java:43)在java.lang.Reflect.Method.Invoke(Method.java:497)在BlueJ.Runtime.ExecServer$3.Run(execServer.java:730)

共有2个答案

屠昌胤
2023-03-14

正如JEE7的官方文档中提到的:

当要求实例具有可序列化接口时引发

因此您只需要实现serializable接口。

class User implements Serializable {
//Staff
}
孟谭三
2023-03-14

您的类“User”没有实现Serializable。Serializable主要是一个标记接口。您不需要做任何事情来实现它。只需声明您的类实现了它就足够了。

class User implements Serializable{
    // your existing code here
}
 类似资料:
  • 解决了。 我在另一个类中初始化我的产品列表: 我想做的是,在构造函数中初始化我的产品列表,如下所示: 这是我的方法,它将对象列表写入。json文件: 我在成员的帮助下找到的解决方案: 和构造函数:

  • 我的应用程序的某些实例出现以下错误: 我不知道如何复制这一点,但看看stacktrace,它似乎是在应用程序停止时发生的。 我真的不明白为什么android试图序列化/打包我的片段,我没有在任何地方实现onSaveInstanceState/onRestoreInstanceState。 谁能帮帮我吗? 谢谢,卢卡 编辑:谢谢你的回答。不,我没有任何视图的自定义输入, 可能是解决此错误的方法,重写

  • 我试图使用Spark 1.0在HBase(0.96.0-hadoop2)中编写一些简单的数据,但我一直遇到序列化问题。以下是相关代码: 运行代码会导致: 用map替换foreach不会崩溃,但我也不会写。任何帮助都将不胜感激。

  • 问题内容: 我正在尝试使用PrintStream在Java文件中写入0xFF。当我使用十六进制编辑器打开其他值时,会将其他值正确写入文件,但是假定显示0xFF的值却改为0xC3BF。 使用的变量类型为int。经过几次尝试后,我还发现我可以输入的“最大值”值为0x7F,这将在十六进制编辑器中正确显示,如果我输入0x80,则十六进制编辑器将显示0xC280。 怎么了? 问题答案: 进行一些调查后发现,

  • 问题内容: 我正在不同的机器上运行多个进程,这些进程需要读/写到共享的XML文件,为此我正在使用和(虽然我知道数据库将是一种更有效的方法,但由于项目限制,这种方法不可行) 。 要更改XML文件,相关过程首先创建一个专用锁定的通道,该通道用于读取文件,然后尝试在关闭通道之前重用相同的通道来写入新版本。这样锁就永远不会掉下来。但是,问题是,即使我从未明确关闭通道,尝试写入结果时也会得到提示。我怀疑那行

  • 我有一个类型为,但我得到了这个错误: