在做了一次非常糟糕的家庭作业之后,我决定放弃一切并从头开始会更快。好吧,不是所有的……我复制了这部分,因为它工作得很好,所以我认为没有必要修改它。虽然可能并不完美,但它确实有效。
但是现在,当我编译只是为了测试它时,我收到了一个意外错误:
Input error: java.io.EOFException
.
请注意,“输入错误”来自我的catch(IOException ioe)
.
文件 ( fileName
) 完全为空。里面什么都没有。这是什么原因造成的。如果文件为空,有没有办法告诉ObjectInputStream
什么都不做?
我也在我的另一个“迭代”中用一个空文件测试了这个,没有这个问题。我什至将我的文件命名为相同的。
public Repository (String fileName) throws FileNotFoundException,
IOException,
SecurityException,
ClassNotFoundException {
this.fileName = fileName;
this.clients = new ArrayList<Client> ();
FileInputStream fileIn = null;
ObjectInputStream in = null;
try {
fileIn = new FileInputStream(this.fileName);
in = new ObjectInputStream(fileIn);
this.clients = (ArrayList<Client>) in.readObject();
} catch (FileNotFoundException fnfe) {
System.out.println("File not found, error: " + fnfe);
} catch (IOException ioe) {
System.out.println("Input error: " + ioe);
} catch (ClassNotFoundException cnfe) {
System.out.println("Class not found, error: " + cnfe);
} catch (SecurityException se) {
System.out.println(
"You do not have permission to access this file, error: "
+ se);
} finally {
if (fileIn != null)
fileIn.close();
if (in != null)
in.close();
}