Java文件发布资源

时间:2010-11-08 10:42:11

标签: java spring file

我正在使用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,我错过了什么?)?

2 个答案:

答案 0 :(得分:5)

您无法关闭文件。但您必须关闭FileInputStreamFIleOutputStreamFileReaderFileWriter。否则,这些Streams(和File-Handles)将不会被GCed。 (直到持有流的对象被GC)

编辑: 在finally - 块中执行此操作,以确保调用close。

答案 1 :(得分:4)

FileWriter对象上的close()方法怎么样?

outFile.close();