In this example we use LineNumberReader
class to read file contents. What we try to do here is to get the line number of the read data. Instead of introducing another variable; an integer for instance; to keep track the line number we can utilize the LineNumberReader
class. This class offers the getLineNumber()
method to know the current line of the data that is read.
package org.kodejava.io;
import java.io.FileReader;
import java.io.LineNumberReader;
import java.util.Objects;
public class LineNumberReaderExample {
public static void main(String[] args) throws Exception {
// We'll read a file called student.csv that contains our
// student information data.
String filename = Objects.requireNonNull(Thread.currentThread().getContextClassLoader()
.getResource("student.csv")).getFile();
// To create the FileReader we can pass in our student data
// file to the reader. Next we pass the reader into our
// LineNumberReader class.
try (FileReader fileReader = new FileReader(filename);
LineNumberReader lineNumberReader = new LineNumberReader(fileReader)) {
// If we set the line number of the LineNumberReader here
// we'll got the line number start from the defined line
// number + 1
//lineNumberReader.setLineNumber(400);
String line;
while ((line = lineNumberReader.readLine()) != null) {
// We print out the student data and show what line
// is currently read by our program.
System.out.printf("Line Number %s: %s%n", lineNumberReader.getLineNumber(), line);
}
}
}
}
The /resources/student.csv
file:
Alice, 7
Bob, 8
Carol, 5
Doe, 6
Earl, 6
Malory, 8
And here is the result of our code snippet above:
Line Number 1: Alice, 7
Line Number 2: Bob, 8
Line Number 3: Carol, 5
Line Number 4: Doe, 6
Line Number 5: Earl, 6
Line Number 6: Malory, 8
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024