2016-03-04 4 views
1

У меня есть List<Cat> (как в следующий класс):Сериализация объекта Java в CSV

public class Cat { 
    public LocalDateTime dob; 
    public String name; 
    public boolean isHappy; 
} 

, и я хочу, чтобы преобразовать его в многострочного CSV файл (т.е. одна строка для каждого объекта Cat), который Затем я буду использовать для загрузки в БД. CSV может выглядеть следующим образом:

"jack",true,"04-20-2000" 
"fred",false,"01-01-1997" 

, что это лучший способ для меня, чтобы преобразовать из List< Cat>objects to CSV format? Should I just write my own класса CatSerializer`, который делает это для меня? Или мне лучше использовать какую-то библиотеку (я не знаю ни одной библиотеки).

Я просто хотел бы знать, что здесь лучше всего.

+0

Я хотел бы пойти дальше и написать свою собственную логику сериализации. –

ответ

0

Я бы не использовать слово сериализации Использование java8 только цикл по элементам списка Кошки потокового затем превращая их в список строк Имея строки складывать их в файл

+0

Вы можете указать код, что-то вроде [MCVE] (http://stackoverflow.com/help/mcve). –

0

1.You может написать CSV Utils, чтобы сделать это , библиотека 2.Use CSV Library как этот

public void readeCsv(){ //read CSV 
    try { 

    ArrayList<String[]> csvList = new ArrayList<String[]>(); //sava data 
    String csvFilePath ="c:/test.csv"; 
    CsvReader reader = new CsvReader(csvFilePath,',',Charset.forName("SJIS")); 

    reader.readHeaders(); 

    while(reader.readRecord()){ //read by line 
    csvList.add(reader.getValues()); 
    } 
    reader.close(); 

    for(int row=0;row<csvList.size();row++){ 

    String cell = csvList.get(row)[0]; 
    System.out.println(cell); 

    } 


    }catch(Exception ex){ 
    System.out.println(ex); 
    } 
    } 

    /** 
    * write CSV 
    */ 
    public void writeCsv(){ 
    try { 

    String csvFilePath ="c:/test.csv"; 
    CsvWriter wr =new CsvWriter(csvFilePath,',',Charset.forName("SJIS")); 
    String[] contents = {"aaaaa","bbbbb","cccccc","ddddddddd"}; 
    wr.writeRecord(contents); 
    wr.close(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    }