Documentation of 'org.apache.poi.poifs.filesystem.NPOIFSStream' Java class
NPOIFSStream
org.apache.poi.poifs.filesystem

Class 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 a NPOIFSFileSystem. 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      void free()
      Frees all blocks in the stream
      java.util.Iterator<java.nio.ByteBuffer> getBlockIterator() 
      java.io.OutputStream getOutputStream() 
      int getStartBlock()
      What block does this stream start at? Will be POIFSConstants.END_OF_CHAIN for a new stream that hasn't been written to yet.
      java.util.Iterator<java.nio.ByteBuffer> iterator()
      Returns an iterator that'll supply one ByteBuffer per block in the stream.
      void updateContents(byte[] contents)
      Updates the contents of the stream to the new set of bytes.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • 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 a HeaderBlock or a Property)
      • 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 be POIFSConstants.END_OF_CHAIN for 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 one ByteBuffer per block in the stream.
        Specified by:
        iterator in interface java.lang.Iterable<java.nio.ByteBuffer>
      • getBlockIterator

        public java.util.Iterator<java.nio.ByteBuffer> getBlockIterator()
      • updateContents

        public void updateContents(byte[] contents)
                            throws java.io.IOException
        Updates 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.IOException
        Frees all blocks in the stream
        Throws:
        java.io.IOException

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.