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.To build an instance, see
ReversedLinesFileReader.Builder
.- Since:
- 2.2
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ReversedLinesFileReader.Builder
Builds a newReversedLinesFileReader
instance.
-
Constructor Summary
Constructors Constructor Description ReversedLinesFileReader(java.io.File file)
Deprecated.UseReaderInputStream.builder()
insteadReversedLinesFileReader(java.io.File file, int blockSize, java.lang.String charsetName)
Deprecated.UseReaderInputStream.builder()
insteadReversedLinesFileReader(java.io.File file, int blockSize, java.nio.charset.Charset charset)
Deprecated.UseReaderInputStream.builder()
insteadReversedLinesFileReader(java.io.File file, java.nio.charset.Charset charset)
Deprecated.UseReaderInputStream.builder()
insteadReversedLinesFileReader(java.nio.file.Path file, int blockSize, java.lang.String charsetName)
Deprecated.UseReaderInputStream.builder()
insteadReversedLinesFileReader(java.nio.file.Path file, int blockSize, java.nio.charset.Charset charset)
Deprecated.UseReaderInputStream.builder()
insteadReversedLinesFileReader(java.nio.file.Path file, java.nio.charset.Charset charset)
Deprecated.UseReaderInputStream.builder()
instead
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ReversedLinesFileReader.Builder
builder()
Constructs a newReversedLinesFileReader.Builder
.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.UseReaderInputStream.builder()
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
@Deprecated public ReversedLinesFileReader(java.io.File file, java.nio.charset.Charset charset) throws java.io.IOException
Deprecated.UseReaderInputStream.builder()
insteadCreates 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
@Deprecated public ReversedLinesFileReader(java.io.File file, int blockSize, java.nio.charset.Charset charset) throws java.io.IOException
Deprecated.UseReaderInputStream.builder()
insteadCreates 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
@Deprecated public ReversedLinesFileReader(java.io.File file, int blockSize, java.lang.String charsetName) throws java.io.IOException
Deprecated.UseReaderInputStream.builder()
insteadCreates 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
@Deprecated public ReversedLinesFileReader(java.nio.file.Path file, java.nio.charset.Charset charset) throws java.io.IOException
Deprecated.UseReaderInputStream.builder()
insteadCreates 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
@Deprecated public ReversedLinesFileReader(java.nio.file.Path file, int blockSize, java.nio.charset.Charset charset) throws java.io.IOException
Deprecated.UseReaderInputStream.builder()
insteadCreates 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
@Deprecated public ReversedLinesFileReader(java.nio.file.Path file, int blockSize, java.lang.String charsetName) throws java.io.IOException
Deprecated.UseReaderInputStream.builder()
insteadCreates 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
-
builder
public static ReversedLinesFileReader.Builder builder()
Constructs a newReversedLinesFileReader.Builder
.- Returns:
- a new
ReversedLinesFileReader.Builder
. - Since:
- 2.12.0
-
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
-
-