【发布时间】: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