Eka*_*ina 9 java bufferedreader
这是一行将文件读入List:
List<String> lines =
new BufferedReader(
new InputStreamReader(classLoader.getResourceAsStream(fileName)))
.lines()
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
这是正确的还是应该将BufferedReader变量分配给变量以便以后关闭它?
Mad*_*ist 11
您应该始终关闭资源.对于仅快速使用几个文件的小程序来说,关闭可能不是一个大问题,因为大多数成熟的操作系统会在进程完成时为您关闭文件.但是,一次打开的文件数量通常有限制.整洁很好,所以当你开始编写更大的程序时,你不会达到这些限制.还有其他类型的资源,如网络和串行端口,您可能希望在程序完成后让其他人使用它们,即使它仍在运行.
手动关闭文件的另一种方法是使用try-with-resources语法,这可确保即使发生错误也能正确关闭文件:
List<String> lines;
try(BufferedReader reader = new BufferedReader(
new InputStreamReader(classLoader.getResourceAsStream(fileName)))) {
lines = reader.lines().collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)
好吧,在你的具体例子中,流被打开了
classLoader.getResourceAsStream(fileName)
Run Code Online (Sandbox Code Playgroud)
永远不会关闭.必须关闭此流- 它很可能是本地系统中的文件句柄.你可以通过关闭它来关闭它BufferedReader,它会关闭包装InputStreamReader,关闭底层InputStream.您也可以存储对原始的引用InputStream,只关闭它.
另请参阅try-with-resources,这可能会让您在这里更轻松.
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |