## org.apache.xerces.utils
Class ChunkyByteArray

    java.lang.Object
      |
      +--java.io.InputStream
            |
            +--org.apache.xerces.utils.ChunkyByteArray

public final class ChunkyByteArray
extends java.io.InputStream

This class is used for accessing the data provided by an InputStream. There are two ways in which this class is used. The first occurs when we are prescanning the start of the stream to determine the encoding being used. Since we do not require that the stream be positionable, we wrap it with an instance of this class. The first "chunk" of the file is read and the data may be accessed directly using the byteAt(offset) method. After we have determined the encoding of the byte stream, the instance of this class is passed on to the EntityReader that will process the data for the scanner. At this point, the reader may continue to access this instance using the byteAt method, which will continue to read the contents into chunks as required until end of input. An example of this is the UCSReader. Alternatively, the reader may access this instance as an InputStream which will first return any data that has been reading into the chunks, and will then return the remaining data from the original InputStream directly.

Version:

Constructor Summary
`ChunkyByteArray(java.io.InputStream is)` Constructor Reads the first chunk.

Method Summary
`boolean` `atEOF(int offset)` Test to see if an offset is at the end of the input data.
`byte` `byteAt(int offset)` Return a byte of input data at the given offset.
`void` `close()` Closes this input Stream
`int` `read()` Read a byte.
`int` `read(byte[] buffer, int offset, int length)` Read bytes.
`void` `rewind()` Reset position within the data stream back to the very beginning.

Methods inherited from class java.io.InputStream
`available, mark, markSupported, read, reset, skip`

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

Constructor Detail

### ChunkyByteArray

    public ChunkyByteArray(java.io.InputStream is)
                    throws java.io.IOException

  Constructor Reads the first chunk.
  Parameters:
    `is` - The input stream containing the data of the entity.

Method Detail

### read

    public int read()
             throws java.io.IOException

  Read a byte.
  Overrides:
    read in class java.io.InputStream
  Returns:
    The next byte of the input data or -1 if there is no more data.

### read

    public int read(byte[] buffer,
                    int offset,
                    int length)
             throws java.io.IOException

  Read bytes.
  Overrides:
    read in class java.io.InputStream
  Parameters:
    `buffer` - The destination for the bytes returned. If null, then the data will discarded instead of returned.
    `offset` - The offset within the buffer where the first returned byte should be placed.
    `length` - The maximum number of bytes to place in the buffer or discard.
  Returns:
    The number of bytes actually placed in the buffer or discarded.

### rewind

    public void rewind()

  Reset position within the data stream back to the very beginning.

### byteAt

    public byte byteAt(int offset)
                throws java.io.IOException

  Return a byte of input data at the given offset.
  Parameters:
    `offset` - The offset in the data stream.
  Returns:
    The byte at the specified position within the data stream.

### atEOF

    public boolean atEOF(int offset)

  Test to see if an offset is at the end of the input data.
  Parameters:
    `offset` - A position in the data stream.
  Returns:
    `true` if the position is at the end of the data stream; `false` otherwise.

### close

    public void close()
               throws java.io.IOException

  Closes this input Stream
  Overrides:
    close in class java.io.InputStream
  Throws:
    java.io.IOException -

Copyright © 1999-2001 Apache XML Project. All Rights Reserved.