]> source.dussan.org Git - poi.git/commitdiff
NPOIFS needs an explicit close, as it has to keep the File / buffer around to read...
authorNick Burch <nick@apache.org>
Thu, 30 Dec 2010 00:58:28 +0000 (00:58 +0000)
committerNick Burch <nick@apache.org>
Thu, 30 Dec 2010 00:58:28 +0000 (00:58 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1053777 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java

index b506e4b9aa7224b820f5f268a6319b4ed1d1d110..e671d870bb89ba29f6f82f734ab7e94569ef0b36 100644 (file)
@@ -107,7 +107,11 @@ public class NPOIFSFileSystem extends BlockStore
 
     /**
      * Creates a POIFSFileSystem from a <tt>File</tt>. This uses less memory than
-     *  creating from an <tt>InputStream</tt>
+     *  creating from an <tt>InputStream</tt>.
+     *  
+     * Note that with this constructor, you will need to call {@link #close()}
+     *  when you're done to have the underlying file closed, as the file is
+     *  kept open during normal operation to read the data out. 
      *  
      * @param file the File from which to read the data
      *
@@ -625,6 +629,15 @@ public class NPOIFSFileSystem extends BlockStore
              new NPOIFSStream(this, _header.getPropertyStart())
        );
     }
+    
+    /**
+     * Closes the FileSystem, freeing any underlying files, streams
+     *  and buffers. After this, you will be unable to read or 
+     *  write from the FileSystem.
+     */
+    public void close() throws IOException {
+       _data.close();
+    }
 
     /**
      * read in a file and write it back out again