How to read a CSV file in Java

In this post, we are going to read a CSV file using the Java code. The CSV is a comma-separated file that is used to store data.

There are several ways by which we can read the CSV file such as using the Scanner class or OpenCSV library provided by the third party. You can download JAR files for opencsv here.

Here, we have two examples to understand the reading process of CSV file in Java.

We have a sample CSV file students.csv that is used for reading the data from Java.

// students.csv

101,'Rohan','India'
102,'Kumar','SriLanka'
103,'David','USA'

Time for an Example:

Let's create an example to read a CSV file. Here, we are using OpenCSV library and CSVReader class to read the file. The library is useful and built for CSV file handling.

import com.opencsv.*;
import java.io.FileReader;
import java.io.IOException;
public class Main {
	public static void main(String[] args){  
		String csvFile = "students.csv";
        CSVReader csvReader = null;
        try {
        	csvReader = new CSVReader(new FileReader(csvFile));
            String[] value;
            while ((value = csvReader.readNext()) != null) {
                System.out.println(value[0] + " " + value[1] + " " + value[2]);
            }
        } catch (IOException e) {
            System.out.println(e);
        }
	}
}


101 'Rohan' 'India'
102 'Kumar' 'SriLanka'
103 'David' 'USA'

Time for another Example:

However, there is another way to read the CSV file, using the Scanner class that is used to read the input from file or input resources. Here, we used Scanner class and useDelimeter() method to specify the value separator.

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws FileNotFoundException{  
		//Reading file using scanner
        Scanner scanner = new Scanner(new File("students.csv"));
         
        //Comma as a delimiter
        scanner.useDelimiter(",");
       
        while (scanner.hasNext()) 
        {
            System.out.print(scanner.next() + " ");
        }
         
        // Closing the scanner  
        scanner.close();
	}
}


101 'Rohan' 'India'
102 'Kumar' 'SriLanka'
103 'David' 'USA'