Package ghidra.app.util.bin

# Class ByteProviderPaddedInputStream

java.lang.Object
java.io.InputStream
ghidra.app.util.bin.ByteProviderPaddedInputStream

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class ByteProviderPaddedInputStream extends InputStream
Wraps a `ByteProvider` and presents it as an `InputStream`.

This InputStream will be limited to a region of the underlying ByteProvider, and has an optional amount of padding at the end of the stream where the stream will appear to have bytes with a value of zero.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ByteProviderPaddedInputStream(ByteProvider provider, long startOffset, long length, long padCount)`
  Create a new `ByteProviderInputStream` instance, using the specified `ByteProvider` as the source of the bytes returned from this stream.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `available()`
  `void`
  `close()`
  `int`
  `read()`

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

  `mark, markSupported, nullInputStream, read, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo`

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

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

- ## Constructor Details

  - ### ByteProviderPaddedInputStream

    public ByteProviderPaddedInputStream(ByteProvider provider, long startOffset, long length, long padCount)
    Create a new `ByteProviderInputStream` instance, using the specified `ByteProvider` as the source of the bytes returned from this stream.

    The source ByteProvider is not closed when this stream is closed.

    The total number of bytes that can be read from this instance will be length + padCount.

    Parameters:
      `provider` - the `ByteProvider` to wrap.
      `startOffset` - the starting offset in the ByteProvider.
      `length` - the number of bytes from the `ByteProvider` to allow to be read by this InputStream.
      `padCount` - the number of fake zero bytes to add after the real `length` bytes.

- ## Method Details

  - ### close

    public void close()
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Overrides:
      `close` in class `InputStream`

  - ### read

    public int read() throws IOException
    Specified by:
      `read` in class `InputStream`
    Throws:
      `IOException`

  - ### available

    public int available()
    Overrides:
      `available` in class `InputStream`