gpt4 book ai didi

Java:自动关闭BufferdStreamReader中的文件以避免FileNotFoundException(打开文件太多)

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

我有一个遗留的 Java 代码,它已打开一个文件并读取方法中的行,如以下代码片段所示:

BufferedReader brdr = 
new BufferedReader(new InputStreamReader(new FileInputStream(filenm)));
while ((String line = brdr.readLine()) != null) {
// ...
}

每当调用时,都会在方法中传递变量 fiilenm。以免java.io.FileNotFoundException: ... (Too many open files) ,我应该使用 brdr.close()为了更安全?

最佳答案

使用 try-with-resources。

Readers/InputStreams 实现 AutoCloseable 接口(interface),try-with-resources 利用它。因此当你的程序从 try block 中逃脱时它会返回资源。

try (BufferedReader brdr = new BufferedReader(new InputStreamReader(new FileInputStream(filenm)))) {
while ((String line = brdr.readLine()) != null) {
. ..
}
} catch (Exception e) {
e.printStackTrace();
}

引用:oracle documentation

关于Java:自动关闭BufferdStreamReader中的文件以避免FileNotFoundException(打开文件太多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61382167/

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