org.apache.cassandra.io.util
Class FastByteArrayInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.apache.cassandra.io.util.FastByteArrayInputStream
All Implemented Interfaces:
java.io.Closeable

public class FastByteArrayInputStream
extends java.io.InputStream

A specialized InputStream for reading the contents of a byte array.

See Also:
ByteArrayInputStream

Field Summary
protected  byte[] buf
          The byte array containing the bytes to stream over.
protected  int count
          The total number of bytes initially available in the byte array buf.
protected  int mark
          The current mark position.
protected  int pos
          The current position within the byte array.
 
Constructor Summary
FastByteArrayInputStream(byte[] buf)
          Constructs a new ByteArrayInputStream on the byte array buf.
FastByteArrayInputStream(byte[] buf, int offset, int length)
          Constructs a new ByteArrayInputStream on the byte array buf with the initial position set to offset and the number of bytes available set to offset + length.
 
Method Summary
 int available()
          Returns the number of bytes that are available before this stream will block.
 void close()
          Closes this stream and frees resources associated with this stream.
 void mark(int readlimit)
          Sets a mark position in this ByteArrayInputStream.
 boolean markSupported()
          Indicates whether this stream supports the mark() and reset() methods.
 int read()
          Reads a single byte from the source byte array and returns it as an integer in the range from 0 to 255.
 int read(byte[] b, int offset, int length)
          Reads at most len bytes from this stream and stores them in byte array b starting at offset.
 void reset()
          Resets this stream to the last marked location.
 long skip(long n)
          Skips count number of bytes in this InputStream.
 
Methods inherited from class java.io.InputStream
read
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

buf

protected byte[] buf
The byte array containing the bytes to stream over.


pos

protected int pos
The current position within the byte array.


mark

protected int mark
The current mark position. Initially set to 0 or the offset parameter within the constructor.


count

protected int count
The total number of bytes initially available in the byte array buf.

Constructor Detail

FastByteArrayInputStream

public FastByteArrayInputStream(byte[] buf)
Constructs a new ByteArrayInputStream on the byte array buf.

Parameters:
buf - the byte array to stream over.

FastByteArrayInputStream

public FastByteArrayInputStream(byte[] buf,
                                int offset,
                                int length)
Constructs a new ByteArrayInputStream on the byte array buf with the initial position set to offset and the number of bytes available set to offset + length.

Parameters:
buf - the byte array to stream over.
offset - the initial position in buf to start streaming from.
length - the number of bytes available for streaming.
Method Detail

available

public int available()
Returns the number of bytes that are available before this stream will block. This method returns the number of bytes yet to be read from the source byte array.

Overrides:
available in class java.io.InputStream
Returns:
the number of bytes available before blocking.

close

public void close()
           throws java.io.IOException
Closes this stream and frees resources associated with this stream.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream
Throws:
java.io.IOException - if an I/O error occurs while closing this stream.

mark

public void mark(int readlimit)
Sets a mark position in this ByteArrayInputStream. The parameter readlimit is ignored. Sending reset() will reposition the stream back to the marked position.

Overrides:
mark in class java.io.InputStream
Parameters:
readlimit - ignored.
See Also:
markSupported(), reset()

markSupported

public boolean markSupported()
Indicates whether this stream supports the mark() and reset() methods. Returns true since this class supports these methods.

Overrides:
markSupported in class java.io.InputStream
Returns:
always true.
See Also:
mark(int), reset()

read

public int read()
Reads a single byte from the source byte array and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the source array has been reached.

Specified by:
read in class java.io.InputStream
Returns:
the byte read or -1 if the end of this stream has been reached.

read

public int read(byte[] b,
                int offset,
                int length)
Reads at most len bytes from this stream and stores them in byte array b starting at offset. This implementation reads bytes from the source byte array.

Overrides:
read in class java.io.InputStream
Parameters:
b - the byte array in which to store the bytes read.
offset - the initial position in b to store the bytes read from this stream.
length - the maximum number of bytes to store in b.
Returns:
the number of bytes actually read or -1 if no bytes were read and the end of the stream was encountered.
Throws:
java.lang.IndexOutOfBoundsException - if offset < 0 or length < 0, or if offset + length is greater than the size of b.
java.lang.NullPointerException - if b is null.

reset

public void reset()
Resets this stream to the last marked location. This implementation resets the position to either the marked position, the start position supplied in the constructor or 0 if neither has been provided.

Overrides:
reset in class java.io.InputStream
See Also:
mark(int)

skip

public long skip(long n)
Skips count number of bytes in this InputStream. Subsequent read()s will not return these bytes unless reset() is used. This implementation skips count number of bytes in the target stream. It does nothing and returns 0 if n is negative.

Overrides:
skip in class java.io.InputStream
Parameters:
n - the number of bytes to skip.
Returns:
the number of bytes actually skipped.


Copyright © 2011 The Apache Software Foundation