org.apache.poi.poifs.filesystem
Class NPOIFSStream
- java.lang.Object
-
- org.apache.poi.poifs.filesystem.NPOIFSStream
-
- All Implemented Interfaces:
- java.lang.Iterable<java.nio.ByteBuffer>
public class NPOIFSStream extends java.lang.Object implements java.lang.Iterable<java.nio.ByteBuffer>This handles reading and writing a stream within aNPOIFSFileSystem. It can supply an iterator to read blocks, and way to write out to existing and new blocks. Most users will want a higher level version of this, which deals with properties to track which stream this is. This only works on big block streams, it doesn't handle small block ones. This uses the new NIO code TODO Implement a streaming write method, and append
-
-
Constructor Summary
Constructors Constructor and Description NPOIFSStream(BlockStore blockStore)Constructor for a new stream.NPOIFSStream(BlockStore blockStore, int startBlock)Constructor for an existing stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidfree()Frees all blocks in the streamjava.util.Iterator<java.nio.ByteBuffer>getBlockIterator()java.io.OutputStreamgetOutputStream()intgetStartBlock()What block does this stream start at? Will bePOIFSConstants.END_OF_CHAINfor a new stream that hasn't been written to yet.java.util.Iterator<java.nio.ByteBuffer>iterator()Returns an iterator that'll supply oneByteBufferper block in the stream.voidupdateContents(byte[] contents)Updates the contents of the stream to the new set of bytes.
-
-
-
Constructor Detail
-
NPOIFSStream
public NPOIFSStream(BlockStore blockStore, int startBlock)
Constructor for an existing stream. It's up to you to know how to get the start block (eg from aHeaderBlockor aProperty)
-
NPOIFSStream
public NPOIFSStream(BlockStore blockStore)
Constructor for a new stream. A start block won't be allocated until you begin writing to it.
-
-
Method Detail
-
getStartBlock
public int getStartBlock()
What block does this stream start at? Will bePOIFSConstants.END_OF_CHAINfor a new stream that hasn't been written to yet.
-
iterator
public java.util.Iterator<java.nio.ByteBuffer> iterator()
Returns an iterator that'll supply oneByteBufferper block in the stream.- Specified by:
iteratorin interfacejava.lang.Iterable<java.nio.ByteBuffer>
-
getBlockIterator
public java.util.Iterator<java.nio.ByteBuffer> getBlockIterator()
-
updateContents
public void updateContents(byte[] contents) throws java.io.IOExceptionUpdates the contents of the stream to the new set of bytes. Note - if this is property based, you'll still need to update the size in the property yourself- Throws:
java.io.IOException
-
getOutputStream
public java.io.OutputStream getOutputStream() throws java.io.IOException- Throws:
java.io.IOException
-
free
public void free() throws java.io.IOExceptionFrees all blocks in the stream- Throws:
java.io.IOException
-
-
DataMelt 3.0 © DataMelt by jWork.ORG