javax.mail.util
Class SharedByteArrayInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ByteArrayInputStream
          extended by javax.mail.util.SharedByteArrayInputStream
All Implemented Interfaces:
Closeable, SharedInputStream

public class SharedByteArrayInputStream
extends ByteArrayInputStream
implements SharedInputStream

A ByteArrayInputStream that implements the SharedInputStream interface, allowing the underlying byte array to be shared between multiple readers.

Since:
JavaMail 1.4
Version:
1.5, 07/05/04
Author:
Bill Shannon

Field Summary
protected  int start
          Position within shared buffer that this stream starts at.
 
Fields inherited from class java.io.ByteArrayInputStream
buf, count, mark, pos
 
Constructor Summary
SharedByteArrayInputStream(byte[] buf)
          Create a SharedByteArrayInputStream representing the entire byte array.
SharedByteArrayInputStream(byte[] buf, int offset, int length)
          Create a SharedByteArrayInputStream representing the part of the byte array from offset for length bytes.
 
Method Summary
 long getPosition()
          Return the current position in the InputStream, as an offset from the beginning of the InputStream.
 InputStream newStream(long start, long end)
          Return a new InputStream representing a subset of the data from this InputStream, starting at start (inclusive) up to end (exclusive).
 
Methods inherited from class java.io.ByteArrayInputStream
available, close, mark, markSupported, read, read, reset, skip
 
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

start

protected int start
Position within shared buffer that this stream starts at.

Constructor Detail

SharedByteArrayInputStream

public SharedByteArrayInputStream(byte[] buf)
Create a SharedByteArrayInputStream representing the entire byte array.

Parameters:
buf - the byte array

SharedByteArrayInputStream

public SharedByteArrayInputStream(byte[] buf,
                                  int offset,
                                  int length)
Create a SharedByteArrayInputStream representing the part of the byte array from offset for length bytes.

Parameters:
buf - the byte array
offset - offset in byte array to first byte to include
length - number of bytes to include
Method Detail

getPosition

public long getPosition()
Return the current position in the InputStream, as an offset from the beginning of the InputStream.

Specified by:
getPosition in interface SharedInputStream
Returns:
the current position

newStream

public InputStream newStream(long start,
                             long end)
Return a new InputStream representing a subset of the data from this InputStream, starting at start (inclusive) up to end (exclusive). start must be non-negative. If end is -1, the new stream ends at the same place as this stream. The returned InputStream will also implement the SharedInputStream interface.

Specified by:
newStream in interface SharedInputStream
Parameters:
start - the starting position
end - the ending position + 1
Returns:
the new stream


Submit a bug or feature

Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.