Class BufferedLineReader

  • All Implemented Interfaces:
    java.lang.AutoCloseable
    Direct Known Subclasses:
    TokenizedReader

    public class BufferedLineReader
    extends java.lang.Object
    implements java.lang.AutoCloseable
    Class for buffered IO, avoiding some of the overheads of the Java API.

    The main difference to the standard Java API is that this implementation will reuse the buffer. After a call to nextLine(), the buffer will be overwitten!

    Since:
    0.7.0
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.StringBuilder buf
      The buffer we read the data into.
      protected int lineNumber
      Current line number.
      private LineReader reader
      Line reader.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      java.lang.CharSequence getBuffer()
      Get the reader buffer.
      int getLineNumber()
      Get the current line number.
      static int lengthWithoutLinefeed​(java.lang.CharSequence line)
      Get the length of the string, not taking trailing linefeeds into account.
      boolean nextLine()
      Read the next line.
      void reset()
      Reset the current reader (but do not close the stream).
      void reset​(LineReader r)
      Reset to a new line reader.
      void reset​(java.io.InputStream in)
      Reset to a new line reader.
      void reset​(java.io.InputStreamReader in)
      Reset to a new line reader.
      • Methods inherited from class java.lang.Object

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

      • buf

        protected java.lang.StringBuilder buf
        The buffer we read the data into.
      • lineNumber

        protected int lineNumber
        Current line number.
    • Constructor Detail

      • BufferedLineReader

        public BufferedLineReader()
        Constructor. Use reset() to assign an input stream.
      • BufferedLineReader

        public BufferedLineReader​(LineReader in)
        Constructor.
        Parameters:
        in - Line reader
      • BufferedLineReader

        public BufferedLineReader​(java.io.InputStream in)
        Constructor.
        Parameters:
        in - Input stream
      • BufferedLineReader

        public BufferedLineReader​(java.io.InputStreamReader in)
        Constructor.
        Parameters:
        in - Input stream reader
    • Method Detail

      • reset

        public void reset()
        Reset the current reader (but do not close the stream).
      • reset

        public void reset​(LineReader r)
        Reset to a new line reader.

        A previous reader will not be closed automatically!

        Parameters:
        r - New reader
      • reset

        public void reset​(java.io.InputStream in)
        Reset to a new line reader.

        A previous stream will not be closed automatically!

        Parameters:
        in - New input stream reader
      • reset

        public void reset​(java.io.InputStreamReader in)
        Reset to a new line reader.

        A previous stream will not be closed automatically!

        Parameters:
        in - New input stream reader
      • getBuffer

        public java.lang.CharSequence getBuffer()
        Get the reader buffer.

        After a call to nextLine(), the buffer will be overwitten!

        Returns:
        Buffer.
      • getLineNumber

        public int getLineNumber()
        Get the current line number.
        Returns:
        Current line number
      • nextLine

        public boolean nextLine()
                         throws java.io.IOException
        Read the next line.
        Returns:
        true if another line was read successfully.
        Throws:
        java.io.IOException - on IO errors.
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Throws:
        java.io.IOException
      • lengthWithoutLinefeed

        public static int lengthWithoutLinefeed​(java.lang.CharSequence line)
        Get the length of the string, not taking trailing linefeeds into account.
        Parameters:
        line - Input line
        Returns:
        Length