【问题标题】:I want to read object created in my file using ObjectInputStream ,But it gives exception that java.io.EOFException我想使用 ObjectInputStream 读取在我的文件中创建的对象,但它给出了 java.io.EOFException 异常
【发布时间】:2018-10-10 03:10:28
【问题描述】:

我已经使用 ObjectOutputStream 在文件中成功创建了一个对象,但是当我尝试读取该 obj 时,它给出了异常。 请帮助我无法处理这个::java.io.EOFException

public class ObjInputObjOutput {
    public static void main(String[] args) {
        FileInputStream fs;
        ObjectInputStream os;
        try{
            fs=new FileInputStream("C:\\Users\\MYPC\\Desktop\\temp.txt");
            os=new ObjectInputStream(fs);
         os.readObject();
         Student s=(Student) os.readObject();
           s.toString();
        }catch(Exception e){System.out.println(e);}
    }
    }
    class Student implements Serializable
    {
    int rno;
    String add;
    float cgpa;
    String name;
    public Student(int rno, String add, float cgpa, String name) {
        this.rno = rno;
        this.add = add;
        this.cgpa = cgpa;
        this.name = name;
    }
    public String toString()
    {
        return "Roll no:"+rno+"\n"+"Add"+add+"\n"+"Cgpa"+cgpa+"\n"+"Name"+name;
    } 
}

【问题讨论】:

  • 您检查过保存的文件吗?它包含任何东西吗?确保它不是零字节。保存学生对象的代码是什么?
  • ObjectOutputStream 创建一个 binary 文件,即不是.txt 文件。
  • 是的,它包含不可读的字符
  • 您可能会收到EOFException,因为您正尝试从文件中读取两个 对象,而您在创建文件时可能只写入了一个对象。 --- 另外,s.toString(); 的意义何在?它返回一个字符串,因此您可能想要打印它或其他东西。
  • 这是我的 txt 文件包含的内容 ¬í ur [Lobjinputobjoutput.Student;ÿØTe¦!^ xp sr objinputobjoutput.Student'n+Uõˆk F cgpaI rnoL addt Ljava/lang/String;L nameq ~ xp @Hõà t my addt mynamesq ~ @„zá q ~ q ~ sq ~ @K... q ~ q ~ sq ~ @I™š q ~ q ~

标签: java serialization java-io eofexception


【解决方案1】:

您正在读取对象并将其丢弃:

os.readObject();

然后尝试读取另一个不存在的对象:

Student s=(Student) os.readObject();

然后将其转换为String 并丢弃:

   s.toString();

您只需要这三行中的第二行。

NB 序列化数据不是文本,不应存储在扩展名为“.txt”的文件中。您也不应该使用完整的路径名。您的主目录不会在其他人的计算机上。

【讨论】:

    猜你喜欢
    • 2012-07-23
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 2013-11-03
    • 2020-07-20
    • 2012-06-08
    • 2013-07-07
    • 1970-01-01
    相关资源
    最近更新 更多