Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java OpenCSV Writing Result Set - End of Line / Row

Tags:

java

csv

opencsv

I'm trying to export a SQL resultset to a comma delimited csv file using opencsv library. However when I pass the result set to the writeAll function, all works well except for the file that it generates does not separates the rows with a new line and creates a nearly un readable file when opened in notepad. Albeit the file that is created is valid and delimits well when imported into excel. However, I need the file this code generates to be readable when opened with a simple text editor. Any suggestions?

My CSV file handle looks like this:

CSVWriter wt = new CSVWriter(new FileWriter("file"), ',',
    CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.NO_ESCAPE_CHARACTER, "\n");
like image 595
emu Avatar asked Sep 02 '25 16:09

emu


1 Answers

Use the System Properties: line separator instead of "\n" (on Windows, "\r\n" is end of line),

CSVWriter wt = new CSVWriter(new FileWriter("file"), ',', 
    CSVWriter.NO_QUOTE_CHARACTER, 
    CSVWriter.NO_ESCAPE_CHARACTER, 
    System.getProperty("line.separator"));

From the System Properties link above,

"line.seperator" Sequence used by operating system to separate lines in text files

like image 137
Elliott Frisch Avatar answered Sep 04 '25 23:09

Elliott Frisch