How to write data into CSV File

In this post, we are going to learn to write data into a CSV file using Java code. In our previous post, we learned to read data from the CSV file. You can refer to this post here "Read CSV in JAVA".

To write data into the CSV file, we are using OpenCSV library which is a third-party library. So, you must download the JARs from the here. Dowload OpenCSV JARs.

After downloading the JARs import them into your project. This library contains two important class CSVReader and CSVWriter that are used to read and write operations in the CSV file.

Here, we are using CSVWriter class to write data into the CSV file students.csv.

Time for an Example:

Let's create an example to write data into a CSV file. Here, we want to write four records to the students.csv file. So, we used writeNext() method of CSVWriter class to write the data.

import java.io.FileWriter;
import java.io.IOException;

import com.opencsv.CSVWriter;

public class Main {
	public static void main(String[] args) throws IOException{  
		String csvFile = "students.csv";
		CSVWriter cw = new CSVWriter(new FileWriter(csvFile));
		String line1[] = {"Id", "Name", "Country"};
		String line2[] = {"1", "Sohan", "India"};
		String line3[] = {"2", "Rohan", "USA"};
		String line4[] = {"3", "Abhishek", "UK"};
		//Writing data to the csv file
		cw.writeNext(line1);
		cw.writeNext(line2);
		cw.writeNext(line3);
		cw.writeNext(line4);
		//close the file
		cw.close();
	}
}

After successfully executing the above code, the students.csv file will have the below data.

//students.csv

"Id","Name","Country"
"1","Sohan","India"
"2","Rohan","USA"
"3","Abhishek","UK"

Time for another Example: Append the CSV

Let's take another example to write the CSV file. Here, we are opening the CSV file in append mode to write the data. The benefit of append mode is, it does not replace the old data of the file. To enable the append mode, use the true literal in the FilWriter() constructor as we did in the below example.

import java.io.FileWriter;
import java.io.IOException;

import com.opencsv.CSVWriter;

public class Main {
	public static void main(String[] args) throws IOException{  
		String csvFile = "students.csv";
		CSVWriter cw = new CSVWriter(new FileWriter(csvFile,true));
		String[] line = {"4", "David", "USA"};
		//Writing data to the csv file
		cw.writeNext(line);
		//close the file
		cw.close();
	}
}

See, we wrote a single entry to the file and it is written at the end of the file which means our code working fine.

// student.csv

"Id","Name","Country"
"1","Sohan","India"
"2","Rohan","USA"
"3","Abhishek","UK"
"4","David","USA"