org.apache.commons.io.input

## Class ReversedLinesFileReader

- java.lang.Object
- - org.apache.commons.io.input.ReversedLinesFileReader

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public class ReversedLinesFileReader
      extends Object
      implements Closeable

  Reads lines in a file reversely (similar to a BufferedReader, but starting at the last line). Useful for e.g. searching in log files.

  To build an instance, see `ReversedLinesFileReader.Builder`.

  Since:
    2.2

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ReversedLinesFileReader.Builder` Builds a new `ReversedLinesFileReader` instance.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ReversedLinesFileReader(File file)` Deprecated. Use `ReaderInputStream.builder()` instead
    `ReversedLinesFileReader(File file, Charset charset)` Deprecated. Use `ReaderInputStream.builder()` instead
    `ReversedLinesFileReader(File file, int blockSize, Charset charset)` Deprecated. Use `ReaderInputStream.builder()` instead
    `ReversedLinesFileReader(File file, int blockSize, String charsetName)` Deprecated. Use `ReaderInputStream.builder()` instead
    `ReversedLinesFileReader(Path file, Charset charset)` Deprecated. Use `ReaderInputStream.builder()` instead
    `ReversedLinesFileReader(Path file, int blockSize, Charset charset)` Deprecated. Use `ReaderInputStream.builder()` instead
    `ReversedLinesFileReader(Path file, int blockSize, String charsetName)` Deprecated. Use `ReaderInputStream.builder()` instead

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static ReversedLinesFileReader.Builder` | `builder()` Constructs a new `ReversedLinesFileReader.Builder`.
    `void` | `close()` Closes underlying resources.
    `String` | `readLine()` Returns the lines of the file from bottom to top.
    `List<String>` | `readLines(int lineCount)` Returns `lineCount` lines of the file from bottom to top.
    `String` | `toString(int lineCount)` Returns the last `lineCount` lines of the file.

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

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

- - ### Constructor Detail

    - #### ReversedLinesFileReader

          @Deprecated
          public ReversedLinesFileReader(File file)
                                              throws IOException

      Deprecated. Use `ReaderInputStream.builder()` instead
      Creates a ReversedLinesFileReader with default block size of 4KB and the platform's default encoding.
      Parameters:
        `file` - the file to be read
      Throws:
        `IOException` - if an I/O error occurs.

    - #### ReversedLinesFileReader

          @Deprecated
          public ReversedLinesFileReader(File file,
                                                     Charset charset)
                                              throws IOException

      Deprecated. Use `ReaderInputStream.builder()` instead
      Creates a ReversedLinesFileReader with default block size of 4KB and the specified encoding.
      Parameters:
        `file` - the file to be read
        `charset` - the charset to use, null uses the default Charset.
      Throws:
        `IOException` - if an I/O error occurs.
      Since:
        2.5

    - #### ReversedLinesFileReader

          @Deprecated
          public ReversedLinesFileReader(File file,
                                                     int blockSize,
                                                     Charset charset)
                                              throws IOException

      Deprecated. Use `ReaderInputStream.builder()` instead
      Creates a ReversedLinesFileReader with the given block size and encoding.
      Parameters:
        `file` - the file to be read
        `blockSize` - size of the internal buffer (for ideal performance this should match with the block size of the underlying file system).
        `charset` - the encoding of the file, null uses the default Charset.
      Throws:
        `IOException` - if an I/O error occurs.
      Since:
        2.3

    - #### ReversedLinesFileReader

          @Deprecated
          public ReversedLinesFileReader(File file,
                                                     int blockSize,
                                                     String charsetName)
                                              throws IOException

      Deprecated. Use `ReaderInputStream.builder()` instead
      Creates a ReversedLinesFileReader with the given block size and encoding.
      Parameters:
        `file` - the file to be read
        `blockSize` - size of the internal buffer (for ideal performance this should match with the block size of the underlying file system).
        `charsetName` - the encoding of the file, null uses the default Charset.
      Throws:
        `IOException` - if an I/O error occurs
        `UnsupportedCharsetException` - thrown instead of `UnsupportedEncodingException` in version 2.2 if the encoding is not supported.

    - #### ReversedLinesFileReader

          @Deprecated
          public ReversedLinesFileReader(Path file,
                                                     Charset charset)
                                              throws IOException

      Deprecated. Use `ReaderInputStream.builder()` instead
      Creates a ReversedLinesFileReader with default block size of 4KB and the specified encoding.
      Parameters:
        `file` - the file to be read
        `charset` - the charset to use, null uses the default Charset.
      Throws:
        `IOException` - if an I/O error occurs.
      Since:
        2.7

    - #### ReversedLinesFileReader

          @Deprecated
          public ReversedLinesFileReader(Path file,
                                                     int blockSize,
                                                     Charset charset)
                                              throws IOException

      Deprecated. Use `ReaderInputStream.builder()` instead
      Creates a ReversedLinesFileReader with the given block size and encoding.
      Parameters:
        `file` - the file to be read
        `blockSize` - size of the internal buffer (for ideal performance this should match with the block size of the underlying file system).
        `charset` - the encoding of the file, null uses the default Charset.
      Throws:
        `IOException` - if an I/O error occurs.
      Since:
        2.7

    - #### ReversedLinesFileReader

          @Deprecated
          public ReversedLinesFileReader(Path file,
                                                     int blockSize,
                                                     String charsetName)
                                              throws IOException

      Deprecated. Use `ReaderInputStream.builder()` instead
      Creates a ReversedLinesFileReader with the given block size and encoding.
      Parameters:
        `file` - the file to be read
        `blockSize` - size of the internal buffer (for ideal performance this should match with the block size of the underlying file system).
        `charsetName` - the encoding of the file, null uses the default Charset.
      Throws:
        `IOException` - if an I/O error occurs
        `UnsupportedCharsetException` - thrown instead of `UnsupportedEncodingException` in version 2.2 if the encoding is not supported.
      Since:
        2.7

  - ### Method Detail

    - #### builder

          public static ReversedLinesFileReader.Builder builder()

      Constructs a new `ReversedLinesFileReader.Builder`.
      Returns:
        a new `ReversedLinesFileReader.Builder`.
      Since:
        2.12.0

    - #### close

          public void close()
                     throws IOException

      Closes underlying resources.
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Throws:
        `IOException` - if an I/O error occurs.

    - #### readLine

          public String readLine()
                          throws IOException

      Returns the lines of the file from bottom to top.
      Returns:
        the next line or null if the start of the file is reached
      Throws:
        `IOException` - if an I/O error occurs.

    - #### readLines

          public List<String> readLines(int lineCount)
                                 throws IOException

      Returns `lineCount` lines of the file from bottom to top.

      If there are less than `lineCount` lines in the file, then that's what you get.

      Note: You can easily flip the result with `Collections.reverse(List)`.

      Parameters:
        `lineCount` - How many lines to read.
      Returns:
        A new list
      Throws:
        `IOException` - if an I/O error occurs.
      Since:
        2.8.0

    - #### toString

          public String toString(int lineCount)
                          throws IOException

      Returns the last `lineCount` lines of the file.

      If there are less than `lineCount` lines in the file, then that's what you get.

      Parameters:
        `lineCount` - How many lines to read.
      Returns:
        A String.
      Throws:
        `IOException` - if an I/O error occurs.
      Since:
        2.8.0

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