Newbie Newbie - 7 months ago 15
Java Question

Reading a column from CSV file using JAVA

Hi I am trying to read a CSV File called

test.csv
in JAVA .
Below is my code :

import java.io.BufferedReader;
import java.io.FileReader;

public class InsertValuesIntoTestDb {

@SuppressWarnings("rawtypes")
public static void main(String[] args) throws Exception {
String splitBy = ",";
BufferedReader br = new BufferedReader(new FileReader("test.csv"));
String line = br.readLine();
while(line!=null){
String[] b = line.split(splitBy);
System.out.println(b[0]);
}
br.close();

}
}


This is my CSV File (test.csv):

a,f,w,b,numinst,af,ub
1RW,800,64,22,1,48:2,true
1RW,800,16,39,1,48:2,true
1RW,800,640,330,1,48:2,true
1RW,800,40,124,1,48:2,true
1RW,800,32,104,1,48:2,true
1RW,800,8,104,1,48:2,true
1R1W,800,65536,39,1,96:96,true
1R1W,800,2048,39,1,96:96,true
1R1W,800,8192,39,1,48:48,true


I am trying to print the first column in the csv ,but the output I get is only
a
in an infinite loop . Can anyone please help me fix this code to print the entire first column. Thanks.

Answer

Read the input continuously within the loop so that the variable line is assigned a value other than the initial value

while ((line = br.readLine()) !=null) {
  ...
}

Aside: This problem has already been solved using CSV libraries such as OpenCSV. Here are examples for reading and writing CSV files

Comments