org.apache.commons.io.input

## Class BoundedReader

- java.lang.Object
- - java.io.Reader
  - - org.apache.commons.io.input.BoundedReader

- All Implemented Interfaces:
    Closeable, AutoCloseable, Readable

      public class BoundedReader
      extends Reader

  A reader that imposes a limit to the number of characters that can be read from an underlying reader, returning eof when this limit is reached -regardless of state of underlying reader.

  One use case is to avoid overrunning the readAheadLimit supplied to java.io.Reader#mark(int), since reading too many characters removes the ability to do a successful reset.

  Since:
    2.5

- - ### Field Summary

    - ### Fields inherited from class java.io.Reader

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BoundedReader(Reader target, int maxCharsFromTargetReader)` Constructs a bounded reader

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the target
    `void` | `mark(int readAheadLimit)` marks the target stream, @see java.io.Reader#mark(int).
    `int` | `read()` Reads a single character, @see java.io.Reader#read()
    `int` | `read(char[] cbuf, int off, int len)` Reads into an array, @see java.io.Reader#read(char[], int, int)
    `void` | `reset()` Resets the target to the latest mark, @see java.io.Reader#reset()

    - ### Methods inherited from class java.io.Reader

      `markSupported, read, read, ready, skip`

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

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

- - ### Constructor Detail

    - #### BoundedReader

          public BoundedReader(Reader target,
                       int maxCharsFromTargetReader)
                        throws IOException

      Constructs a bounded reader
      Parameters:
        `target` - The target stream that will be used
        `maxCharsFromTargetReader` - The maximum number of characters that can be read from target
      Throws:
        `IOException` - if mark fails

  - ### Method Detail

    - #### close

          public void close()
                     throws IOException

      Closes the target
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `Reader`
      Throws:
        `IOException` - If an I/O error occurs while calling the underlying reader's close method

    - #### reset

          public void reset()
                     throws IOException

      Resets the target to the latest mark, @see java.io.Reader#reset()
      Overrides:
        `reset` in class `Reader`
      Throws:
        `IOException` - If an I/O error occurs while calling the underlying reader's reset method

    - #### mark

          public void mark(int readAheadLimit)
                    throws IOException

      marks the target stream, @see java.io.Reader#mark(int).
      Overrides:
        `mark` in class `Reader`
      Parameters:
        `readAheadLimit` - The number of characters that can be read while still retaining the ability to do #reset(). Note that this parameter is not validated with respect to maxCharsFromTargetReader. There is no way to pass past maxCharsFromTargetReader, even if this value is greater.
      Throws:
        `IOException` - If an I/O error occurs while calling the underlying reader's mark method

    - #### read

          public int read()
                   throws IOException

      Reads a single character, @see java.io.Reader#read()
      Overrides:
        `read` in class `Reader`
      Returns:
        -1 on eof or the character read
      Throws:
        `IOException` - If an I/O error occurs while calling the underlying reader's read method

    - #### read

          public int read(char[] cbuf,
                 int off,
                 int len)
                   throws IOException

      Reads into an array, @see java.io.Reader#read(char[], int, int)
      Specified by:
        `read` in class `Reader`
      Parameters:
        `cbuf` - The buffer to fill
        `off` - The offset
        `len` - The number of chars to read
      Returns:
        the number of chars read
      Throws:
        `IOException` - If an I/O error occurs while calling the underlying reader's read method

Copyright © 2002–2016 The Apache Software Foundation. All rights reserved.