gpt4 book ai didi

java - 如何正确关闭ObjectInputStream?

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

我正在使用FileInputStream第一次尝试从文件加载对象 ( Item )。

这是我的代码:

    try {

FileInputStream fi = new FileInputStream(f);
ObjectInputStream reader = new ObjectInputStream(fi);

while (true) {
Item i = (Item)reader.readObject();
System.out.println(i.getName());
}

} catch (Exception e) {
System.out.println(e.toString());
}

我读到这是执行此操作的标准方法,并且代码运行良好。然而,这样fireader永远不会关闭,因为编译器会跳转到 catch立即阻止 EOFException被抛出。

编译器不允许我关闭 fireadercatchfinally堵塞。这真的是应该的样子吗?如何正确关闭输入对象?

最佳答案

您可以使用 try-with-resources 语句,如下所示:

try (FileInputStream fi = new FileInputStream(f); 
ObjectInputStream reader = new ObjectInputStream(fi)) {

while (true) {
Item i = (Item)reader.readObject();
System.out.println(i.getName());
}

} catch (Exception e) {
System.out.println(e.toString());
}

这里是documentation了解有关此方法的更多信息。

关于java - 如何正确关闭ObjectInputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47397157/

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