## org.apache.poi.poifs.storage
Class DocumentBlock

    java.lang.Object
      org.apache.poi.poifs.storage.DocumentBlock

All Implemented Interfaces:
  BlockWritable

    public final class DocumentBlock

extends java.lang.Object

A block of document data.

Author:
  Marc Johnson (mjohnson at apache dot org)

Field Summary
`protected POIFSBigBlockSize` `bigBlockSize` Either 512 bytes (`POIFSConstants.SMALLER_BIG_BLOCK_SIZE`) or 4096 bytes (`POIFSConstants.LARGER_BIG_BLOCK_SIZE`)

Constructor Summary
`DocumentBlock(java.io.InputStream stream, POIFSBigBlockSize bigBlockSize)` Create a single instance initialized with data.
`DocumentBlock(RawDataBlock block)` create a document block from a raw data block

Method Summary
`static DocumentBlock[]` `convert(POIFSBigBlockSize bigBlockSize, byte[] array, int size)` convert a single long array into an array of DocumentBlock instances
`protected void` `doWriteData(java.io.OutputStream stream, byte[] data)` Default implementation of write for extending classes that contain their data in a simple array of bytes.
`static DataInputBlock` `getDataInputBlock(DocumentBlock[] blocks, int offset)`
`static byte` `getFillByte()`
`boolean` `partiallyRead()` Was this a partially read block?
`int` `size()` Get the number of bytes read for this block
`void` `writeBlocks(java.io.OutputStream stream)` Write the storage to an OutputStream

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### bigBlockSize

    protected POIFSBigBlockSize bigBlockSize

  Either 512 bytes (`POIFSConstants.SMALLER_BIG_BLOCK_SIZE`) or 4096 bytes (`POIFSConstants.LARGER_BIG_BLOCK_SIZE`)

Constructor Detail

### DocumentBlock

    public DocumentBlock(RawDataBlock block)
                  throws java.io.IOException

  create a document block from a raw data block

  Parameters:
    `block` - the raw data block
  Throws:
    `java.io.IOException`

### DocumentBlock

    public DocumentBlock(java.io.InputStream stream,
                         POIFSBigBlockSize bigBlockSize)
                  throws java.io.IOException

  Create a single instance initialized with data.

  Parameters:
    `stream` - the InputStream delivering the data.
  Throws:
    `java.io.IOException`

Method Detail

### size

    public int size()

  Get the number of bytes read for this block

  Returns:
    bytes read into the block

### partiallyRead

    public boolean partiallyRead()

  Was this a partially read block?

  Returns:
    true if the block was only partially filled with data

### getFillByte

    public static byte getFillByte()

  Returns:
    the fill byte used

### convert

    public static DocumentBlock[] convert(POIFSBigBlockSize bigBlockSize,
                                          byte[] array,
                                          int size)

  convert a single long array into an array of DocumentBlock instances

  Parameters:
    `array` - the byte array to be converted
    `size` - the intended size of the array (which may be smaller)
  Returns:
    an array of DocumentBlock instances, filled from the input array

### getDataInputBlock

    public static DataInputBlock getDataInputBlock(DocumentBlock[] blocks,
                                                   int offset)

### doWriteData

    protected void doWriteData(java.io.OutputStream stream,
                               byte[] data)
                        throws java.io.IOException

  Default implementation of write for extending classes that contain their data in a simple array of bytes.

  Parameters:
    `stream` - the OutputStream to which the data should be written.
    `data` - the byte array of to be written.
  Throws:
    `java.io.IOException` - on problems writing to the specified stream.

### writeBlocks

    public void writeBlocks(java.io.OutputStream stream)
                     throws java.io.IOException

  Write the storage to an OutputStream

  Specified by:
    `writeBlocks` in interface `BlockWritable`
  Parameters:
    `stream` - the OutputStream to which the stored data should be written
  Throws:
    `java.io.IOException` - on problems writing to the specified stream

Copyright 2012 The Apache Software Foundation or its licensors, as applicable.