函数退出后,函数内部的 opened files/file pointers(Buffered Reader) 会发生什么?
What happens to opened files/file pointers(Buffered Reader) inside of a function after the function exits?
我想知道函数退出后在函数内部打开 files/file 指针(缓冲 Reader)会发生什么情况?
例如
public void foo(){
String curr;
for (int i = 0; i < 100; i++){
BufferedReader br = new BufferedReader(new FileReader(file_location));
while((curr = br.readLine()) != null){
/* do something */
}
}
}
我们必须注意,我不会关闭缓冲 reader。
谢谢。
基本上 BufferedReader 对象本身丢失了,您没有更多的方法可以访问它。
当然,JVM 可能仍保留该打开文件的一些文件句柄。从这个意义上讲,您只是造成了某种资源泄漏;从理论上讲,当您经常这样做时,您可能 运行 会遇到实际问题。
更多细节取决于 JVM 本身; OS 正在 运行 上线。
我想知道函数退出后在函数内部打开 files/file 指针(缓冲 Reader)会发生什么情况?
例如
public void foo(){
String curr;
for (int i = 0; i < 100; i++){
BufferedReader br = new BufferedReader(new FileReader(file_location));
while((curr = br.readLine()) != null){
/* do something */
}
}
}
我们必须注意,我不会关闭缓冲 reader。
谢谢。
基本上 BufferedReader 对象本身丢失了,您没有更多的方法可以访问它。
当然,JVM 可能仍保留该打开文件的一些文件句柄。从这个意义上讲,您只是造成了某种资源泄漏;从理论上讲,当您经常这样做时,您可能 运行 会遇到实际问题。
更多细节取决于 JVM 本身; OS 正在 运行 上线。