Sunday, 15 April 2018

How to read and write a CSV file using core java?


Hello Buddies.

CSV: CSV is a comma separated values file which allows data to be saved in a table structured format


Let's try to read a CSV file using java, filter out the required rows and create a new CSV per our own requirements.


Input - Provided as a path for the file having below details -


ID NAME AGE GENDER OCCUPATION ADDRESS
1 ABC 22 M SE IN
2 DEF 32 F SE US
3 ABC 12 M SE UK
4 DEF 42 F SE IN
5 ABC 52 M SE US
6 DEF 53 F SE UK
7 ABC 60 M SE IN
8 DEF 67 F SE US
9 ABC 74 M SE UK
10 DEF 81 F SE IN
11 ABC 88 M SE US








We will filter out the people living in India and will have a new CSV only for those people.

Here's a code snippet -

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CSVReader {

 private static String mainPath = "C:\\\\Users\\\\namit.sharma\\\\Downloads\\\\";

 public static void main(String[] args) throws IOException {

  FileReader fileReader = new FileReader(new File(mainPath + "sampleExcel1.csv"));

  BufferedReader bufferedReader = new BufferedReader(fileReader);

  String string;
  do {
   string = bufferedReader.readLine();
   if (null != string) {
    System.out.println(string);
    filterForIndians(string);
   }
  } while (null != string);

  bufferedReader.close();

 }

 private static void filterForIndians(String string) throws IOException {
  File file = new File(mainPath + "fileredCsv.csv");
  if (file.exists()) {
   file.delete();
  }
  FileWriter fileWriter = new FileWriter(new File(mainPath + "fileredCsv.csv"),true);
  if ("IN".equals(string.split(",")[5])) {
   BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
   bufferedWriter.write(string+"\n");
   bufferedWriter.close();
  }
 }

}


Now we can check the generated csv. It will have the desired rows -

1 ABC 22 M SE IN
4 DEF 42 F SE IN
7 ABC 60 M SE IN
10 DEF 81 F SE IN

Featured post

JAVA based project, that can be used to hit DB using JDBC, from WSO2 ESB

Hi Buddies, Here is a small project that will enable you to hit MySQL DB using WSO2 ESB - https://github.com/namitsharma99/customM...

Popular Posts