gpt4 book ai didi

java - 读取对象文件而不出现 EOFException

转载 作者:行者123 更新时间:2023-12-01 12:43:06 25 4
gpt4 key购买 nike

请看下面的代码

public class xina {

static name[] Name;

public static void main(String[] args) throws Exception {
Name = new name[3];
Name[0] = new name("Hugh", "Jackman");
Name[1] = new name("John", "TRavolta");
Name[2] = new name("Megh", "Ryne");

File ff = new File("object.txt");

FileOutputStream fo = new FileOutputStream(ff.getName());
ObjectOutputStream oo = new ObjectOutputStream(fo);

for (name dd : Name) {
System.out.println(dd.getfistName() + " " + dd.getlastName());
oo.writeObject(dd);
}

oo.close();

FileInputStream fi = new FileInputStream(ff.getName());
ObjectInputStream oi = new ObjectInputStream(fi);

name hh;
try {
while ((hh = (name) oi.readObject()) != null) {
System.out.println(hh.fistName);
}
} catch (EOFException e) {
System.out.println("file ended");
}

}
}

这里的“name”是保存名字和姓氏的类。我如何在不使用异常的情况下读取文件。我的观点是,当不再有对象存在时,它会尝试读取,看起来空检查不能满足需要。

提前致谢。

最佳答案

while ((hh = (name) oi.readObject()) != null) {

问题就出在这里。如果您写入的是 null,则 readObject() 返回 null,否则不返回。读取超过流末尾的正确测试是捕获 EOFException

关于java - 读取对象文件而不出现 EOFException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24907130/

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