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 and 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.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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

      `read, skip`

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

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

- - ### Constructor Detail

    - #### 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.

  - ### Method Detail

    - #### 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.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Overrides:
        `close` in class `java.io.InputStream`
      Throws:
        `java.io.IOException` - if the original Reader fails to be closed