Package org.apache.tools.ant.util

# Class ReaderInputStream

java.lang.Object
java.io.InputStream
org.apache.tools.ant.util.ReaderInputStream

All Implemented Interfaces:
  `java.io.Closeable`, `java.lang.AutoCloseable`

Direct Known Subclasses:
  `StringInputStream`

    public class ReaderInputStream
    extends java.io.InputStream

Adapts a `Reader` as an `InputStream`. Adapted from `StringInputStream`.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `ReaderInputStream​(java.io.Reader reader)` | Construct a `ReaderInputStream` for the specified `Reader`.
  `ReaderInputStream​(java.io.Reader reader, java.lang.String encoding)` | Construct a `ReaderInputStream` for the specified `Reader`, with the specified encoding.
  `ReaderInputStream​(java.io.Reader reader, java.nio.charset.Charset charset)` | Construct a `ReaderInputStream` for the specified `Reader`, with the specified encoding.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `int` | `available()` |
  `void` | `close()` | Closes the Reader.
  `void` | `mark​(int limit)` | Marks the read limit of the Reader.
  `boolean` | `markSupported()` |
  `int` | `read()` | Reads from the `Reader`, returning the same value.
  `int` | `read​(byte[] b, int off, int len)` | Reads from the `Reader` into a byte array
  `void` | `reset()` | Resets the Reader.

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

  `nullInputStream, read, readAllBytes, readNBytes, readNBytes, skip, skipNBytes, transferTo`

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

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

- ## Constructor Details

  - ### ReaderInputStream

    public ReaderInputStream​(java.io.Reader reader)
    Construct a `ReaderInputStream` for the specified `Reader`.
    Parameters:
      `reader` - `Reader`. Must not be `null`.

  - ### ReaderInputStream

    public ReaderInputStream​(java.io.Reader reader, java.lang.String encoding)
    Construct a `ReaderInputStream` for the specified `Reader`, with the specified encoding.
    Parameters:
      `reader` - non-null `Reader`.
      `encoding` - non-null `String` encoding.

  - ### ReaderInputStream

    public ReaderInputStream​(java.io.Reader reader, java.nio.charset.Charset charset)
    Construct a `ReaderInputStream` for the specified `Reader`, with the specified encoding.
    Parameters:
      `reader` - non-null `Reader`.
      `charset` - non-null `Charset` charset.
    Since:
      Ant 1.10.6

- ## Method Details

  - ### read

    public int read() throws java.io.IOException
    Reads from the `Reader`, returning the same value.
    Specified by:
      `read` in class `java.io.InputStream`
    Returns:
      the value of the next character in the `Reader`.
    Throws:
      `java.io.IOException` - if the original `Reader` fails to be read

  - ### read

    public int read​(byte[] b, int off, int len) throws java.io.IOException
    Reads from the `Reader` into a byte array
    Overrides:
      `read` in class `java.io.InputStream`
    Parameters:
      `b` - the byte array to read into
      `off` - the offset in the byte array
      `len` - the length in the byte array to fill
    Returns:
      the actual number read into the byte array, -1 at the end of the stream
    Throws:
      `java.io.IOException` - if an error occurs

  - ### mark

    public void mark​(int limit)
    Marks the read limit of the Reader.
    Overrides:
      `mark` in class `java.io.InputStream`
    Parameters:
      `limit` - the maximum limit of bytes that can be read before the mark position becomes invalid

  - ### available

    public int available() throws java.io.IOException
    Overrides:
      `available` in class `java.io.InputStream`
    Returns:
      the current number of bytes ready for reading
    Throws:
      `java.io.IOException` - if an error occurs

  - ### markSupported

    public boolean markSupported()
    Overrides:
      `markSupported` in class `java.io.InputStream`
    Returns:
      false - mark is not supported

  - ### reset

    public void reset() throws java.io.IOException
    Resets the Reader.
    Overrides:
      `reset` in class `java.io.InputStream`
    Throws:
      `java.io.IOException` - if the Reader fails to be reset

  - ### close

    public void close() throws java.io.IOException
    Closes the Reader.
    Specified by:
      `close` in interface `java.lang.AutoCloseable`
    Specified by:
      `close` in interface `java.io.Closeable`
    Overrides:
      `close` in class `java.io.InputStream`
    Throws:
      `java.io.IOException` - if the original Reader fails to be closed