- java.lang.Object
-
- java.io.InputStream
-
- java.io.ByteArrayInputStream
-
- jakarta.mail.util.SharedByteArrayInputStream
-
- All Implemented Interfaces:
SharedInputStream
,java.io.Closeable
,java.lang.AutoCloseable
public class SharedByteArrayInputStream extends java.io.ByteArrayInputStream implements SharedInputStream
A ByteArrayInputStream that implements the SharedInputStream interface, allowing the underlying byte array to be shared between multiple readers.- Author:
- Bill Shannon
-
-
Field Summary
Fields Modifier and Type Field Description protected int
start
Position within shared buffer that this stream starts at.
-
Constructor Summary
Constructors Constructor Description 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 fromoffset
forlength
bytes.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getPosition()
Return the current position in the InputStream, as an offset from the beginning of the InputStream.java.io.InputStream
newStream(long start, long end)
Return a new InputStream representing a subset of the data from this InputStream, starting atstart
(inclusive) up toend
(exclusive).
-
-
-
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 fromoffset
forlength
bytes.- Parameters:
buf
- the byte arrayoffset
- offset in byte array to first byte to includelength
- 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 interfaceSharedInputStream
- Returns:
- the current position
-
newStream
public java.io.InputStream newStream(long start, long end)
Return a new InputStream representing a subset of the data from this InputStream, starting atstart
(inclusive) up toend
(exclusive).start
must be non-negative. Ifend
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 interfaceSharedInputStream
- Parameters:
start
- the starting positionend
- the ending position + 1- Returns:
- the new stream
-
-