我正在编写一个应用程序,它在一端将对象写入二进制文件,另一端从同一个二进制文件中读取这些对象。
写入文件非常有效,当在记事本中打开.dat文件时,很明显对象是按照预期编写的。
但是试图遍历它们并阅读它们似乎有点问题。我正在使用while(true)循环,如下所示,但只返回第一个对象。
可能是因为它没有正确写入文件吗?
写入文件的代码如下:
try {
outputStream.writeObject(newObj);
outputStream.close();
System.out.println("Obj written to file.");
}
catch(IOException e) {
System.out.println("Error writing to file " + FILE);
System.exit(0);
}
并从文件中读取:
try {
inputStream = new ObjectInputStream(new FileInputStream(FILE));
}
catch(IOException e) {
System.out.println("Error opening file " + FILE + ".");
System.exit(0);
}
try {
while (true) {
obj pet = (obj)inputStream.readObject();
obj.writeOutput();
}
}
catch(EOFException e) {
System.out.println("End of reading from file.");
}
catch(IOException e) {
System.out.println("End of reading from file.");
}
catch(ClassNotFoundException e) {
System.out.println("Class not found.");
}
请让我知道如何遍历所有存在的对象。