Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add delimiter while writing .csv file using openCSV

Tags:

java

I'm writing a csv file in java and i want to write csv file with '|' as delimiter. How can i do in my code.

This is my Java code:

public void createCsv(User user) {
    
    try( FileWriter writer = new FileWriter(CSV_FILE_NAME,true);
            CSVWriter csvWriter = new CSVWriter(writer,
                    CSVWriter.DEFAULT_SEPARATOR,
                    CSVWriter.NO_QUOTE_CHARACTER,
                    CSVWriter.DEFAULT_ESCAPE_CHARACTER,
                    CSVWriter.DEFAULT_LINE_END);
            
            CSVReader reader = new CSVReader(new FileReader(CSV_FILE_NAME));){
        
        if(reader.readNext() !=null) {
            csvWriter.writeNext(new String[]{user.getFirstName(), user.getLastName()});             
        }else {
            String[] headerRecord = {"First Name", "Last Name"};
            csvWriter.writeNext(headerRecord);

            csvWriter.writeNext(new String[]{user.getFirstName(), user.getLastName()});             
        }
        
        
        
    } catch (IOException e) {
        
        e.printStackTrace();
    }
}
like image 513
sumit maske Avatar asked Jun 30 '18 21:06

sumit maske


2 Answers

Use this snippet for instantiating CSVWriter.

CSVWriter csvWriter = new CSVWriter(writer,
                                    '|',
                                    CSVWriter.NO_QUOTE_CHARACTER,
                                    CSVWriter.DEFAULT_ESCAPE_CHARACTER,
                                    CSVWriter.DEFAULT_LINE_END);
like image 64
Jagrut Sharma Avatar answered Nov 14 '22 23:11

Jagrut Sharma


Just pass the pipe character as the default separator.

CSVWriter csvWriter = new CSVWriter(writer,'|');
like image 35
gagan singh Avatar answered Nov 15 '22 00:11

gagan singh