InputStream implementation based on an underlying ByteBuffer
supporting mark.
May be utilized as well with a memory-mapped FileChannel
using a size ≤ Integer#MAX_VALUE.
This becomes efficient with files ≥ 10 MiB, depending on the platform
and whether the traditional method uses a BufferedInputStream supporting mark incl. it's buffer size.
See test case com.jogamp.common.nio.TestByteBufferInputStream.
| Modifier and Type | Field and Description |
|---|---|
| private final ByteBuffer | |
| private int |
| Access | Constructor and Description |
|---|---|
| public | ByteBufferInputStream(final ByteBuffer
the underlying byte buffer. buf)Creates a new byte-buffer input stream. |
| Modifier and Type | Method and Description |
|---|---|
| public final int | available()
Overrides java. |
| public final ByteBuffer | |
| public final synchronized void | mark(final int
the maximum limit of bytes that can be read before
the mark position becomes invalid. unused)Overrides java. mark.
|
| public final boolean | |
| public final int | read()
Implements abstract java. |
| public final int | read(final byte[]
the buffer into which the data is read. b, final int the start offset in array off, final int b
at which the data is written.the maximum number of bytes to read. len)Overrides java. len bytes of data from the input stream into
an array of bytes.
|
| public final int | |
| public final synchronized void | |
| public final long | skip(final long
the number of bytes to be skipped. n)Overrides java. n bytes of data from this input
stream.
|
| ByteBufferInputStream | back to summary |
|---|---|
| public ByteBufferInputStream(final ByteBuffer buf) Creates a new byte-buffer input stream.
| |
| available | back to summary |
|---|---|
| public final int available() Overrides java. Doc from java. Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking, which may be 0, or 0 when end of stream is detected. The read might be on the same thread or another thread. A single read or skip of this many bytes will not block, but may read or skip fewer bytes. Note that while some implementations of A subclass's implementation of this method may choose to throw an
| |
| getBuffer | back to summary |
|---|---|
| public final ByteBuffer getBuffer() | |
| mark | back to summary |
|---|---|
| public final synchronized void mark(final int unused) Overrides java. Doc from java. This implementation supports
Marks the current position in this input stream. A subsequent call to
the The The general contract of Marking a closed stream should not have any effect on the stream.
| |
| markSupported | back to summary |
|---|---|
| public final boolean markSupported() Overrides java. Doc from java. This implementation supports
Tests if this input stream supports the
| |
| read | back to summary |
|---|---|
| public final int read() Implements abstract java. Doc from java. Reads the next byte of data from the input stream. The value byte is
returned as an
| |
| read | back to summary |
|---|---|
| public final int read(final byte[] b, final int off, final int len) Overrides java. Doc from java. Reads up to This method blocks until input data is available, end of file is detected, or an exception is thrown. If The first byte read is stored into element In every case, elements
| |
| read | back to summary |
|---|---|
| public final int read(final ByteBuffer b, final int len) | |
| reset | back to summary |
|---|---|
| public final synchronized void reset() throws IOException Overrides java. Doc from java. This implementation supports
Repositions this stream to the position at the time the
The general contract of
| |
| skip | back to summary |
|---|---|
| public final long skip(final long n) throws IOException Overrides java. Doc from java. Skips over and discards
| |