我有两个文件需要使用相同的变量来读取,代码如下:
try {
FileInputStream fis = new FileInputStream(filename1);
InputStreamReader isr = new InputStreamReader(fis, "UTF8");
BufferedReader br = new BufferedReader(isr);
String line="";
while((line=br.readLine())!=null){
System.out.println(line);
}
// Do i need to add these 3 statements ...
//br.close();
//isr.close();
//fis.close();
//Without the above 3 statements also the code works fine ...
fis = new FileInputStream(filename2);
isr = new InputStreamReader(fis, "UTF8");
br = new BufferedReader(isr);
line="";
while((line=br.readLine())!=null){
System.out.println(line);
}
br.close();
isr.close();
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
java 中的文件读取不会为第一个文件 filename1 关闭打开的流并释放与其关联的任何系统资源?
没有抛出异常。
最佳答案
所以你有一个资源泄漏,这不会给你带来问题,除非你;
- 尝试在 Windows 上删除该文件(因为该文件仍处于打开状态)
- 多次执行此操作,在这种情况下,您可能会用完文件句柄。
关于java - Java 中的文件读取,具有相同的文件读取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20968248/