2016-03-04 79 views
1

我有一個List<Cat>(按照下面的類):序列化Java對象CSV

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

,我想將其轉換成多行CSV文件(即每個目錄對象一個線)然後我將使用加載到數據庫。該CSV可能是這樣的:

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

什麼是我從List<貓>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.使用圖書館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(); 
    } 
    }