Package java.io

Class ByteArrayInputStream

java.lang.Object
java.io.InputStream
java.io.ByteArrayInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

public class ByteArrayInputStream
extends InputStream
A specialized InputStream for reading the contents of a byte array.
See Also:
ByteArrayOutputStream
  • Field Summary

    Fields
    Modifier and Type Field Description
    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

    Constructors
    Constructor Description
    ByteArrayInputStream​(byte[] buf)
    Constructs a new ByteArrayInputStream on the byte array buf.
    ByteArrayInputStream​(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

    Modifier and Type Method Description
    int available()
    Returns the number of remaining bytes.
    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[] buffer, int byteOffset, int byteCount)
    Reads up to byteCount bytes from this stream and stores them in the byte array buffer starting at byteOffset.
    void reset()
    Resets this stream to the last marked location.
    long skip​(long byteCount)
    Skips byteCount 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 Details

    • 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 Details

    • ByteArrayInputStream

      public ByteArrayInputStream​(byte[] buf)
      Constructs a new ByteArrayInputStream on the byte array buf.
      Parameters:
      buf - the byte array to stream over.
    • ByteArrayInputStream

      public ByteArrayInputStream​(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 Details

    • available

      public int available()
      Returns the number of remaining bytes.
      Overrides:
      available in class InputStream
      Returns:
      count - pos
    • close

      public void close() throws IOException
      Closes this stream and frees resources associated with this stream.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class InputStream
      Throws:
      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 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 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 InputStream
      Returns:
      the byte read or -1 if the end of this stream has been reached.
    • read

      public int read​(byte[] buffer, int byteOffset, int byteCount)
      Description copied from class: InputStream
      Reads up to byteCount bytes from this stream and stores them in the byte array buffer starting at byteOffset. Returns the number of bytes actually read or -1 if the end of the stream has been reached.
      Overrides:
      read in class InputStream
    • 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 InputStream
      See Also:
      mark(int)
    • skip

      public long skip​(long byteCount)
      Skips byteCount bytes in this InputStream. Subsequent calls to read will not return these bytes unless reset is used. This implementation skips byteCount number of bytes in the target stream. It does nothing and returns 0 if byteCount is negative.
      Overrides:
      skip in class InputStream
      Parameters:
      byteCount - the number of bytes to skip.
      Returns:
      the number of bytes actually skipped.