Class ExtendedBufferedReader

java.lang.Object
java.io.Reader
org.apache.commons.io.input.UnsynchronizedReader
org.apache.commons.io.input.UnsynchronizedBufferedReader
org.apache.commons.csv.ExtendedBufferedReader
All Implemented Interfaces:
Closeable, AutoCloseable, Readable

final class ExtendedBufferedReader extends org.apache.commons.io.input.UnsynchronizedBufferedReader
A special buffered reader which supports sophisticated read access.

In particular the reader supports a look-ahead option, which allows you to see the next char returned by read(). This reader also tracks how many characters have been read with getPosition().

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
    The last char returned
    private int
     
    private long
    The count of EOLs (CR/LF/CRLF) seen so far
    private long
     
    private long
    The position, which is the number of characters read so far
    private long
     

    Fields inherited from class java.io.Reader

    lock
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new instance using the default buffer size.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Closes the stream.
    (package private) int
    Returns the last character that was read as an integer (0 to 65535).
    (package private) long
    Returns the current line number
    (package private) long
    Gets the character position in the reader.
    void
    mark(int readAheadLimit)
     
    int
     
    int
    read(char[] buf, int offset, int length)
     
    Gets the next line, dropping the line terminator(s).
    void
     

    Methods inherited from class org.apache.commons.io.input.UnsynchronizedBufferedReader

    markSupported, peek, peek, ready, skip

    Methods inherited from class org.apache.commons.io.input.UnsynchronizedReader

    isClosed, setClosed

    Methods inherited from class java.io.Reader

    read, read

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • lastChar

      private int lastChar
      The last char returned
    • lastCharMark

      private int lastCharMark
    • lineNumber

      private long lineNumber
      The count of EOLs (CR/LF/CRLF) seen so far
    • lineNumberMark

      private long lineNumberMark
    • position

      private long position
      The position, which is the number of characters read so far
    • positionMark

      private long positionMark
  • Constructor Details

    • ExtendedBufferedReader

      ExtendedBufferedReader(Reader reader)
      Constructs a new instance using the default buffer size.
  • Method Details

    • close

      public void close() throws IOException
      Closes the stream.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class org.apache.commons.io.input.UnsynchronizedBufferedReader
      Throws:
      IOException - If an I/O error occurs
    • getLastChar

      int getLastChar()
      Returns the last character that was read as an integer (0 to 65535). This will be the last character returned by any of the read methods. This will not include a character read using the UnsynchronizedBufferedReader.peek() method. If no character has been read then this will return Constants.UNDEFINED. If the end of the stream was reached on the last read then this will return IOUtils.EOF.
      Returns:
      the last character that was read
    • getLineNumber

      long getLineNumber()
      Returns the current line number
      Returns:
      the current line number
    • getPosition

      long getPosition()
      Gets the character position in the reader.
      Returns:
      the current position in the reader (counting characters, not bytes since this is a Reader)
    • mark

      public void mark(int readAheadLimit) throws IOException
      Overrides:
      mark in class org.apache.commons.io.input.UnsynchronizedBufferedReader
      Throws:
      IOException
    • read

      public int read() throws IOException
      Overrides:
      read in class org.apache.commons.io.input.UnsynchronizedBufferedReader
      Throws:
      IOException
    • read

      public int read(char[] buf, int offset, int length) throws IOException
      Overrides:
      read in class org.apache.commons.io.input.UnsynchronizedBufferedReader
      Throws:
      IOException
    • readLine

      public String readLine() throws IOException
      Gets the next line, dropping the line terminator(s). This method should only be called when processing a comment, otherwise, information can be lost.

      Increments lineNumber and updates position.

      Sets lastChar to Constants.EOF at EOF, otherwise the last EOL character.

      Overrides:
      readLine in class org.apache.commons.io.input.UnsynchronizedBufferedReader
      Returns:
      the line that was read, or null if reached EOF.
      Throws:
      IOException
    • reset

      public void reset() throws IOException
      Overrides:
      reset in class org.apache.commons.io.input.UnsynchronizedBufferedReader
      Throws:
      IOException