Package org.apache.commons.io.input
Class ReversedLinesFileReader
- java.lang.Object
-
- org.apache.commons.io.input.ReversedLinesFileReader
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class ReversedLinesFileReader extends java.lang.Object implements java.io.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(java.io.File file)
Deprecated.2.5 useReversedLinesFileReader(File, Charset)
insteadReversedLinesFileReader(java.io.File file, int blockSize, java.lang.String charsetName)
Creates a ReversedLinesFileReader with the given block size and encoding.ReversedLinesFileReader(java.io.File file, int blockSize, java.nio.charset.Charset charset)
Creates a ReversedLinesFileReader with the given block size and encoding.ReversedLinesFileReader(java.io.File file, java.nio.charset.Charset charset)
Creates a ReversedLinesFileReader with default block size of 4KB and the specified encoding.ReversedLinesFileReader(java.nio.file.Path file, int blockSize, java.lang.String charsetName)
Creates a ReversedLinesFileReader with the given block size and encoding.ReversedLinesFileReader(java.nio.file.Path file, int blockSize, java.nio.charset.Charset charset)
Creates a ReversedLinesFileReader with the given block size and encoding.ReversedLinesFileReader(java.nio.file.Path file, java.nio.charset.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.java.lang.String
readLine()
Returns the lines of the file from bottom to top.java.util.List<java.lang.String>
readLines(int lineCount)
ReturnslineCount
lines of the file from bottom to top.java.lang.String
toString(int lineCount)
Returns the lastlineCount
lines of the file.
-
-
-
Constructor Detail
-
ReversedLinesFileReader
@Deprecated public ReversedLinesFileReader(java.io.File file) throws java.io.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:
java.io.IOException
- if an I/O error occurs.
-
ReversedLinesFileReader
public ReversedLinesFileReader(java.io.File file, java.nio.charset.Charset charset) throws java.io.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:
java.io.IOException
- if an I/O error occurs.- Since:
- 2.5
-
ReversedLinesFileReader
public ReversedLinesFileReader(java.io.File file, int blockSize, java.nio.charset.Charset charset) throws java.io.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:
java.io.IOException
- if an I/O error occurs.- Since:
- 2.3
-
ReversedLinesFileReader
public ReversedLinesFileReader(java.io.File file, int blockSize, java.lang.String charsetName) throws java.io.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:
java.io.IOException
- if an I/O error occursjava.nio.charset.UnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.
-
ReversedLinesFileReader
public ReversedLinesFileReader(java.nio.file.Path file, java.nio.charset.Charset charset) throws java.io.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:
java.io.IOException
- if an I/O error occurs.- Since:
- 2.7
-
ReversedLinesFileReader
public ReversedLinesFileReader(java.nio.file.Path file, int blockSize, java.nio.charset.Charset charset) throws java.io.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:
java.io.IOException
- if an I/O error occurs.- Since:
- 2.7
-
ReversedLinesFileReader
public ReversedLinesFileReader(java.nio.file.Path file, int blockSize, java.lang.String charsetName) throws java.io.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:
java.io.IOException
- if an I/O error occursjava.nio.charset.UnsupportedCharsetException
- thrown instead ofUnsupportedEncodingException
in version 2.2 if the encoding is not supported.- Since:
- 2.7
-
-
Method Detail
-
close
public void close() throws java.io.IOException
Closes underlying resources.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
- if an I/O error occurs.
-
readLine
public java.lang.String readLine() throws java.io.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:
java.io.IOException
- if an I/O error occurs.
-
readLines
public java.util.List<java.lang.String> readLines(int lineCount) throws java.io.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:
java.io.IOException
- if an I/O error occurs.- Since:
- 2.8.0
-
toString
public java.lang.String toString(int lineCount) throws java.io.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:
java.io.IOException
- if an I/O error occurs.- Since:
- 2.8.0
-
-