Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to differentiate between empty string and null with OpenCSV

Tags:

java

null

opencsv

This is my code:

CSVReader reader = new CSVReader(isReader);
while ((col = reader.readNext()) != null) {
   String c1 = col[1];
}

this is my csv file:

"a","","c"
"1",,"3"

Is there a way I can differentiate between null and ""? OpenCSV seems to treat everything as non-null String. Can I tell it to treat empty fields as null?

like image 260
Gavriel Avatar asked Aug 14 '14 06:08

Gavriel


2 Answers

Adding to @Gavriel's answer, starting from OpenCSV 3.6 (maybe earlier), I found that strictQuotes doesn't help with returning null anymore.

CSVReaderBuilder has withFieldAsNull() for this purpose.

CSVReader csvReader = new CSVReaderBuilder(csvFileReader)
    .withFieldAsNull(CSVReaderNullFieldIndicator.EMPTY_SEPARATORS)
    .build();
like image 155
Cary Li Avatar answered Oct 24 '22 07:10

Cary Li


It is not possible. There is no difference between an empty string and the java specific null in the CSV format's philosophy. The null is an empty reference in the java object memory model. In CSV there aren't any references, but only empty values.

like image 4
Andremoniy Avatar answered Oct 24 '22 05:10

Andremoniy