我有以下代码,在我的类中逐行读取文件时运行良好。
但是,如果我尝试添加命令close,在文件读取完成后执行,那么就会出现错误:
try { FileInputStream in = new FileInputStream(filename);
BufferedReader reader=new BufferedReader(new InputStreamReader(in));
String line;
while((line=reader.readLine())!=null){
// read the file
}
}
catch (Exception e) {
System.out.println(e);
}
但是,如果我尝试添加命令close,在文件读取完成后执行,那么就会出现错误:
in.close();
Error:(131, 9) java: cannot find symbol
symbol: variable in
location: class ReadFile
我搜索了有关在使用后清洁对象以及在程序结束之前关闭文件的需求,并在Java上发现了许多帖子,但其中许多是非常矛盾的。问题是最终我感到很困惑。
我错了吗?或者说Java编程有点模糊和混乱吗?我的意思是,显然没有真正使用析构函数,使用finalize也是非常值得怀疑的,close的使用也被认为是不必要的。关于这些问题的一些帖子是相互矛盾且不确定的。
那么,如何处理呢?如果我确实需要关闭文件,该如何摆脱这个错误消息?关闭文件是否真的可以免去不必要的操作?在程序完成时清理类实例又如何?
in.close()
?记住在Java中,作用域很重要。 - Pradeep Simha