org.apache.ignite.internal.util.io

## Class GridByteArrayInputStream

- java.lang.Object
- - java.io.InputStream
  - - org.apache.ignite.internal.util.io.GridByteArrayInputStream

All Implemented Interfaces:
  Closeable, AutoCloseable

    public class GridByteArrayInputStream
    extends InputStream

This class defines input stream backed by byte array. It is identical to `ByteArrayInputStream` with no synchronization.

### Constructor Summary

Constructors
Constructor and Description
`GridByteArrayInputStream(byte[] buf)`
`GridByteArrayInputStream(byte[] buf, int off, int len)`

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `available()` Returns the number of remaining bytes that can be read (or skipped over) from this input stream.
`void` `close()` Closing of this stream has no effect.
`void` `mark(int readAheadLimit)` Set the current marked position in the stream.
`boolean` `markSupported()` Tests if this `InputStream` supports mark/reset.
`int` `read()` Reads the next byte of data from this input stream.
`int` `read(byte[] b, int off, int len)` Reads up to `len` bytes of data into an array of bytes from this input stream.
`void` `reset()` Resets the buffer to the marked position.
`long` `skip(long n)` Skips `n` bytes of input from this input stream.
`String` `toString()`

### Methods inherited from class java.io.InputStream

`read`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### GridByteArrayInputStream

    public GridByteArrayInputStream(byte[] buf)

Parameters:
  `buf` - The input buffer.

#### GridByteArrayInputStream

    public GridByteArrayInputStream(byte[] buf,
                                    int off,
                                    int len)

Parameters:
  `buf` - The input buffer.
  `off` - The offset in the buffer of the first byte to read.
  `len` - The maximum number of bytes to read from the buffer.

### Method Detail

#### read

    public int read()

Reads the next byte of data from this input stream. The value byte is returned as an `int` in the range `0` to `255`. If no byte is available because the end of the stream has been reached, the value `-1` is returned.

This method cannot block.

Specified by:
  `read` in class `InputStream`
Returns:
  The next byte of data, or `-1` if the end of the stream has been reached.

#### read

    public int read(byte[] b,
                    int off,
                    int len)

Reads up to `len` bytes of data into an array of bytes from this input stream. If `pos` equals `count`, then `-1` is returned to indicate end of file. Otherwise, the number `k` of bytes read is equal to the smaller of `len` and `count-pos`. If `k` is positive, then bytes `buf[pos]` through `buf[pos+k-1]` are copied into `b[off]` through `b[off+k-1]` in the manner performed by `System.arraycopy`. The value `k` is added into `pos` and `k` is returned.

This `read` method cannot block.

Overrides:
  `read` in class `InputStream`
Parameters:
  `b` - The buffer into which the data is read.
  `off` - The start offset in the destination array `b`
  `len` - The maximum number of bytes read.
Returns:
  The total number of bytes read into the buffer, or `-1` if there is no more data because the end of the stream has been reached.
Throws:
  `NullPointerException` - If `b` is `null`.
  `IndexOutOfBoundsException` - If `off` is negative, `len` is negative, or `len` is greater than `b.length - off`

#### skip

    public long skip(long n)

Skips `n` bytes of input from this input stream. Fewer bytes might be skipped if the end of the input stream is reached. The actual number `k` of bytes to be skipped is equal to the smaller of `n` and `count-pos`. The value `k` is added into `pos` and `k` is returned.

Overrides:
  `skip` in class `InputStream`
Parameters:
  `n` - The number of bytes to be skipped.
Returns:
  The actual number of bytes skipped.

#### available

    public int available()

Returns the number of remaining bytes that can be read (or skipped over) from this input stream.

The value returned is `count - pos`, which is the number of bytes remaining to be read from the input buffer.

Overrides:
  `available` in class `InputStream`
Returns:
  The number of remaining bytes that can be read (or skipped over) from this input stream without blocking.

#### markSupported

    public boolean markSupported()

Tests if this `InputStream` supports mark/reset.

This method always returns `true`.

Overrides:
  `markSupported` in class `InputStream`

#### mark

    public void mark(int readAheadLimit)

Set the current marked position in the stream. ByteArrayInputStream objects are marked at position zero by default when constructed. They may be marked at another position within the buffer by this method.

If no mark has been set, then the value of the mark is the offset passed to the constructor (or 0 if the offset was not supplied).

Note: The `readAheadLimit` for this class has no meaning.

Overrides:
  `mark` in class `InputStream`

#### reset

    public void reset()

Resets the buffer to the marked position. The marked position is 0 unless another position was marked or an offset was specified in the constructor.

Overrides:
  `reset` in class `InputStream`

#### close

    public void close()

Closing of this stream has no effect.

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Overrides:
  `close` in class `InputStream`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

${current.year} Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Database and Caching Platform | : ver. 2.8.0
Release Date | : February 27 2020