From: Nick Burch
Date: Thu, 11 Sep 2014 08:48:10 +0000 (+0000)
Subject: Patch from Daniel Bonniot from bug #56956 - Add a NPOIFSFileSystem constructor with...
X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f835d21c9d767e409b52a6023c94f794f3af9193;p=poi.git
Patch from Daniel Bonniot from bug #56956 - Add a NPOIFSFileSystem constructor with a FileChannel and the read-only option
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1624226 13f79535-47bb-0310-9956-ffa450edef68
---
diff --git a/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java b/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java
index 6099bb1ece..fd3529af3a 100644
--- a/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java
+++ b/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java
@@ -153,7 +153,8 @@ public class NPOIFSFileSystem extends BlockStore
* 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
+ * @param file the File from which to read or read/write the data
+ * @param readOnly whether the POIFileSystem will only be used in read-only mode
*
* @exception IOException on errors reading, or on invalid data
*/
@@ -165,7 +166,8 @@ public class NPOIFSFileSystem extends BlockStore
/**
* Creates a POIFSFileSystem from an open FileChannel. This uses
- * less memory than creating from an InputStream.
+ * less memory than creating from an InputStream. The stream will
+ * be used in read-write mode.
*
* Note that with this constructor, you will need to call {@link #close()}
* when you're done to have the underlying Channel closed, as the channel is
@@ -181,6 +183,25 @@ public class NPOIFSFileSystem extends BlockStore
this(channel, null, false, false);
}
+ /**
+ *
Creates a POIFSFileSystem from an open FileChannel. This uses
+ * less memory than creating from an InputStream.
+ *
+ * Note that with this constructor, you will need to call {@link #close()}
+ * when you're done to have the underlying Channel closed, as the channel is
+ * kept open during normal operation to read the data out.
+ *
+ * @param channel the FileChannel from which to read or read/write the data
+ * @param readOnly whether the POIFileSystem will only be used in read-only mode
+ *
+ * @exception IOException on errors reading, or on invalid data
+ */
+ public NPOIFSFileSystem(FileChannel channel, boolean readOnly)
+ throws IOException
+ {
+ this(channel, null, readOnly, false);
+ }
+
private NPOIFSFileSystem(FileChannel channel, File srcFile, boolean readOnly, boolean closeChannelOnError)
throws IOException
{