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

Methods
`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