gpt4 book ai didi

java - 奇怪的输入错误,我以前用过这个代码

转载 作者:行者123 更新时间:2023-12-02 07:22:20 24 4
gpt4 key购买 nike

在一次非常糟糕的尝试完成我的家庭作业之后,我决定放弃一切并从头开始会更快。好吧,不是一切......我复制了这部分,因为它工作完美,所以我认为没有必要修改它。虽然可能并不完美,但它确实有效。

但是现在,当我编译只是为了测试它时,我收到一个意外错误:

输入错误:java.io.EOFException

请注意,“输入错误”来 self 的 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();
}

最佳答案

肯定是之前

    in = new ObjectInputStream(fileIn);
this.clients = (ArrayList<Client>) in.readObject();

您想通过File.length()检查文件大小.

我假设如果它是空的那么你会想要返回一个空的数组列表。您不能通过反序列化空文件来做到这一点。毕竟,即使是空数组列表也具有非零大小(并且需要通过序列化属性将自身标识为数组列表)

关于java - 奇怪的输入错误,我以前用过这个代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14053816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com