Java buffreader与中间关闭

时间:2014-05-14 22:33:27

标签: java bufferedreader

我有一个接收带有文件路径的字符串的方法,并且我创建了所有用于读取文件的代码,尝试使用catch块,这样的事情非常简单:

private static String readLineFormFile(String filename){

    File filepath=  new File(filename);
    BufferedReader reader = null;
    String line =null;      

    try{

    reader = new BufferedReader(new FileReader(filepath));

    line=reader.readLine();
    }
    catch (FileNotFoundException fe1){
        System.out.println(filename+" file Not Found");
    }
    catch (IOException ie1) {
        System.out.println("Error Reading File "+filename);
    }   
    finally{
        try{
        reader.close();


    }catch(IOException ie2){
        System.out.println("Error closing file "+filename);
    }
 }
    return line;
}

现在,如果我在文件上调用此方法2次,那么在我第一次关闭它之后,buffereader是否仍然知道我所在的行?

3 个答案:

答案 0 :(得分:1)

  

这个buffereader仍然[k]现在是我第一次关闭它后的线路吗?

没有。您将每次从文件的开头阅读。

答案 1 :(得分:0)

没有

每次运行该方法时,都会创建一个新的BufferedReader对象。当方法结束时,对象将被销毁,并在下次运行方法时创建一个新对象。

有关读取位置的信息存储在BufferedReader对象中,并且不会被所有此类对象共享。

答案 2 :(得分:0)

对象实例会是什么? BufferedReader实例创建两次;每次调用一次,在构造函数上使用new关键字。 reader是一个局部变量,在退出方法时超出范围。