Package 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.- Since:
- 2.2
-
-
Constructor Summary
Constructors Constructor Description ReversedLinesFileReader(File file)
Deprecated.2.5 useReversedLinesFileReader(File, Charset)
insteadReversedLinesFileReader(File file, int blockSize, String charsetName)
Creates a ReversedLinesFileReader with the given block size and encoding.ReversedLinesFileReader(File file, int blockSize, Charset charset)
Creates a ReversedLinesFileReader with the given block size and encoding.ReversedLinesFileReader(File file, Charset charset)
Creates a ReversedLinesFileReader with default block size of 4KB and the specified encoding.ReversedLinesFileReader(Path file, int blockSize, String charsetName)
Creates a ReversedLinesFileReader with the given block size and encoding.ReversedLinesFileReader(Path file, int blockSize, Charset charset)
Creates a ReversedLinesFileReader with the given block size and encoding.ReversedLinesFileReader(Path file, Charset charset)
Creates a ReversedLinesFileReader with default block size of 4KB and the specified encoding.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes underlying resources.String
readLine()
Returns the lines of the file from bottom to top.List<String>
readLines(int lineCount)
ReturnslineCount
lines of the file from bottom to top.String
toString(int lineCount)
Returns the lastlineCount
lines of the file.
-
-
-
Constructor Detail
-
ReversedLinesFileReader
@Deprecated public ReversedLinesFileReader(File file) throws IOException
Deprecated.2.5 useReversedLinesFileReader(File, Charset)
insteadCreates 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
public ReversedLinesFileReader(File file, Charset charset) throws IOException
Creates a ReversedLinesFileReader with default block size of 4KB and the specified encoding.- Parameters:
file
- the file to be readcharset
- the charset to use, null uses the default Charset.- Throws:
IOException
- if an I/O error occurs- Since:
- 2.5
-
ReversedLinesFileReader
public ReversedLinesFileReader(File file, int blockSize, Charset charset) throws IOException
Creates a ReversedLinesFileReader with the given block size and encoding.- Parameters:
file
- the file to be readblockSize
- 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
public ReversedLinesFileReader(File file, int blockSize, String charsetName) throws IOException
Creates a ReversedLinesFileReader with the given block size and encoding.- Parameters:
file
- the file to be readblockSize
- 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 occursUnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.
-
ReversedLinesFileReader
public ReversedLinesFileReader(Path file, Charset charset) throws IOException
Creates a ReversedLinesFileReader with default block size of 4KB and the specified encoding.- Parameters:
file
- the file to be readcharset
- the charset to use, null uses the default Charset.- Throws:
IOException
- if an I/O error occurs- Since:
- 2.7
-
ReversedLinesFileReader
public ReversedLinesFileReader(Path file, int blockSize, Charset charset) throws IOException
Creates a ReversedLinesFileReader with the given block size and encoding.- Parameters:
file
- the file to be readblockSize
- 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
public ReversedLinesFileReader(Path file, int blockSize, String charsetName) throws IOException
Creates a ReversedLinesFileReader with the given block size and encoding.- Parameters:
file
- the file to be readblockSize
- 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 occursUnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.- Since:
- 2.7
-
-
Method Detail
-
close
public void close() throws IOException
Closes underlying resources.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- 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
ReturnslineCount
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 lastlineCount
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
-
-