]> source.dussan.org Git - poi.git/commitdiff
New method toInputStream() added.
authorRainer Klute <klute@apache.org>
Mon, 1 Sep 2003 18:51:08 +0000 (18:51 +0000)
committerRainer Klute <klute@apache.org>
Mon, 1 Sep 2003 18:51:08 +0000 (18:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353331 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hpsf/MutablePropertySet.java

index dc0b14529057e2dd32dcff47c925070e9ab6146d..79c8650fd26252324fbde7c942c35d245b5cd462 100644 (file)
  */
 package org.apache.poi.hpsf;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.LinkedList;
 import java.util.ListIterator;
+
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianConsts;
 
@@ -240,4 +244,30 @@ public class MutablePropertySet extends PropertySet
         }
     }
 
+
+
+    /**
+     * <p>Returns the contents of this property set stream as an input stream.
+     * The latter can be used for example to write the property set into a POIFS
+     * document. The input stream represents a snapshot of the property set.
+     * If the latter is modified while the input stream is still being
+     * read, the modifications will not be reflected in the input stream but in
+     * the {@link MutablePropertySet} only.</p>
+     *
+     * @return the contents of this property set stream
+     * 
+     * @throws WritingNotSupportedException if HPSF does not yet support writing
+     * of a property's variant type.
+     * @throws IOException if an I/O exception occurs.
+     */
+    public InputStream toInputStream()
+        throws IOException, WritingNotSupportedException
+    {
+        final ByteArrayOutputStream psStream = new ByteArrayOutputStream();
+        write(psStream);
+        psStream.close();
+        final byte[] streamData = psStream.toByteArray();
+        return new ByteArrayInputStream(streamData);
+    }
+
 }
\ No newline at end of file