函数退出后,函数内部的 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 正在 运行 上线。