gpt4 book ai didi

java - 必须关闭缓冲区读取器

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

我正在尝试一个例子 http://www.roseindia.net/java/beginners/java-read-file-line-by-line.shtml在示例中,BufferReader 未关闭,是否有必要关闭BufferReader?请解释一下。

FileInputStream fstream = new FileInputStream("textfile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
System.out.println (strLine);
}
//Close the input stream
in.close();

最佳答案

始终关闭流。这是一个好习惯,可以帮助您避免一些奇怪的行为。调用 close() 方法也会调用 flush(),因此您无需手动执行此操作。

关闭流的最佳位置可能是在finally block 中。如果您像示例中一样并且在 in.close() 行之前发生异常,则流将不会关闭。

如果您有链式流,则只能关闭最后一个流以及关闭之前的所有流。这意味着您的示例中的 br.close() - 而不是 in.close();

示例

try {
// do something with streams
} catch (IOException e) {
// process exception - log, wrap into your runtime, whatever you want to...
} finally {
try {
stream.close();
} catch (IOException e) {
// error - log it at least
}
}

或者您可以使用closeQuietly(java.io.InputStream)在 Apache Commons 库中。

关于java - 必须关闭缓冲区读取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9376183/

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