alex1111 alex1111 - 5 months ago 42
Java Question

CSV Reader empty values java

I have this CSV:

0,102000082,,2,125,'Battery location','Left-hand drive',2,2
0,300000029,102000082,3,895,'Behind the cab','Left',2,-7
0,102000082,,4,127,'Battery location','Right-hand drive',4,4

I use
to map to a bean

public static List<BatteryBean> loadAndRead{
File csvFilename = new File("C:\\my.csv");
CSVReader csvReader = new CSVReader(new FileReader(csvFilename));

ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
String[] columns = new String[] { "ktypnr","sentenceId","parentId","sortOrder", "adjItemNoteId","sentText","itemNoteText","parentSortOrder1","parentSortOrder10" };
CsvToBean csv = new CsvToBean();
List<BatteryBean> list = csv.parse(strat, csvReader);
return list;

public static void main(String[] args) {

try {
List<BatteryBean> list = loadAndRead("C:\\work\\battery_report_raw.csv");

for (Object object : list) {
BatteryBean bb = (BatteryBean) object;

So the problem is that the file contains empty strings between ,, and I get an exeption at parsing :

Caused by: java.lang.NumberFormatException: For input string: ""

I resolved. I have another question

Csv file
ktypnr sentence_id parent_id sort_order adj_item_note_id sent_text iem_note_text
0 102000082 2 125 Battery location' Left-hand drive'
0 300000029 102000082 3 895 Behind the cab' Left'
0 102000082 4 127 Battery location' Right-hand drive'
0 300000029 102000082 5 898 Behind the cab' Right'

So if one sentence_id = one parent_id i should combine those two so that looks like this(example first line and second line) but I should consider also the sort_order:

0, Battery location, Left-hand drive, Behind the cab, Left

I don't know how to proceed


Change parentId to String data type in BatteryBean. It seems it is integer.