A quick guide on how to read the file in older java and new JDK 8 version with example programs.
1. Overview
In this tutorial, We’ll learn how to read a file line by line in java and print the files content onto console with example program.
Read More: 1Z0-900: Java EE 7 Application Developer
First, let us use the older java version for example demonstration and next will learn how to do the same in the newer java 8 api.
2. Java Read File Example
First, Use BufferedReader.readLine() method to get the each line from the file.
Example:
package com.oraclejavacertified.files.read;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
/**
* Example to read the file in java
*
* @author oraclejavacertified.blogspot.com
*
*/
public class ReadFileBeforeJava8 {
public static void main(String[] args) throws IOException {
String fileLocation = "/Users/workspace/CoreJava/src/main/java/com/oraclejavacertified/files/read/student.txt";
FileReader fileReader = new FileReader(fileLocation);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
int index = 1;
while ((line = bufferedReader.readLine()) != null) {
System.out.println("line " + index + " : " + line);
index++;
}
}
}
Output:
line 1 : student name - Java Learner
line 2 : Location - India
3. Java Example To Read CSV File
Next, Use the same concept to read the csv file in java but first line will be the csv header and the remaining lines will be holding the actual values.
package com.oraclejavacertified.files.read;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
/**
* Example to read the CSV file in java
*
* @author oraclejavacertified.blogspot.com
*
*/
public class ReadCSVFileBeforeJava8 {
public static void main(String[] args) throws IOException {
String fileLocation = "/Users/workspace/CoreJava/src/main/java/com/oraclejavacertified/files/read/student.csv";
FileReader fileReader = new FileReader(fileLocation);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String csvLine;
int index = 1;
String header = bufferedReader.readLine();
System.out.println("CSV header : "+header);
while ((csvLine = bufferedReader.readLine()) != null) {
System.out.println("csv line " + index + " : " + csvLine);
index++;
}
}
}
Output:
CSV header : student id,name,age
csv line 1 : 100,Jhon,30
csv line 2 : 101,Shella,35
csv line 3 : 102,Dhon,40
4. Java 8 Streams – Read File Example – Files.readLines()
Further more, Use method Files.readLines() method to get the all the lines in the form of java 8 Stream. Next, use forEach() method to get the each line of file and print into the console.
package com.oraclejavacertified.files.read;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.stream.Stream;
/**
* Java 8 example to read the file using Streams.
*
* @author oraclejavacertified.blogspot.com
*
*/
public class Java8ReadFileExample1 {
public static void main(String[] args) {
Path filePath = Path.of(
"/Users/workspace/CoreJava/src/main/java/com/oraclejavacertified/files/read/student.csv");
Stream<String> stream = null;
try {
stream = Files.lines(filePath);
} catch (IOException e) {
e.printStackTrace();
}
stream.forEach(System.out::println);
}
}
Output:
student id,name,age
100,Jhon,30
101,Shella,35
102,Dhon,40
5. Java 8 Streams + BufferedReader.lines()
Finally, learn another new method of java 8 api is BufferedReader.lines() method which returns the Stream<String>.package com.oraclejavacertified.files.read;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
/**
* Java 8 example to read the file using Streams + BufferedReader.lines().
*
* @author oraclejavacertified.blogspot.com
*
*/
public class Java8ReadFileExample2 {
public static void main(String[] args) throws IOException {
Path filePath = Path.of(
"/Users/workspace/CoreJava/src/main/java/com/oraclejavacertified/files/read/student.csv");
BufferedReader br = Files.newBufferedReader(filePath);
List<String> list = br.lines().collect(Collectors.toList());
list.forEach(System.out::println);
}
}
Source: javacodegeeks.com
0 comments:
Post a Comment