我正在使用SpringFramework Web MVC并且在servlet handleRequestInternal中,我创建了一个变量来访问本地文件系统中的文件,即
protected ModelAndView handleRequestInternal(HttpServletRequest request,......
{
......
File file = new File(rssPath);
if( !file.exists() ) {
file.createNewFile();
FileWriter outFile = new FileWriter(rssPath);
outFile.write(rssJson);
outFile.flush();
//file = null;
}
}
问题是,如果我没有将文件设置为null,该文件仍将被使用,我无法写入。
我必须等几秒钟,可能直到GC来收集。
查看File API,我没有看到任何方法如close()来释放资源。
那么如何正确销毁文件引用(不将其设置为null,我错过了什么?)?
答案 0 :(得分:5)
您无法关闭文件。但您必须关闭FileInputStream
,FIleOutputStream
,FileReader
和FileWriter
。否则,这些Streams(和File-Handles)将不会被GCed。 (直到持有流的对象被GC)
编辑:
在finally
- 块中执行此操作,以确保调用close。
答案 1 :(得分:4)
FileWriter对象上的close()
方法怎么样?
outFile.close();