我有一个接收带有文件路径的字符串的方法,并且我创建了所有用于读取文件的代码,尝试使用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是否仍然知道我所在的行?
答案 0 :(得分:1)
这个buffereader仍然[k]现在是我第一次关闭它后的线路吗?
没有。您将每次从文件的开头阅读。
答案 1 :(得分:0)
没有
每次运行该方法时,都会创建一个新的BufferedReader对象。当方法结束时,对象将被销毁,并在下次运行方法时创建一个新对象。
有关读取位置的信息存储在BufferedReader对象中,并且不会被所有此类对象共享。
答案 2 :(得分:0)
对象实例会是什么? BufferedReader
实例创建两次;每次调用一次,在构造函数上使用new
关键字。 reader
是一个局部变量,在退出方法时超出范围。