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 |
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.
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.