Java文件发布资源

Don*_* Ch 2 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;
 }
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我没有将文件设置为null,该文件仍将被使用,我无法写入它.

我必须等几秒钟,可能直到GC来收集.

查看File API,我没有看到任何方法如close()来释放资源.

那么如何正确销毁文件引用(不将其设置为null,我错过了什么?)?

Chr*_*ach 5

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

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