2014-02-06 80 views
2

我正在使用ICsvListReader和ICsvListWriter讀取和寫入csv文件。
我發現csv文件中的空字符串被轉換爲null然後輸出。
我該如何避免這種情況發生。我試過創建一個新的CellProcessor:如何告訴SuperCSV不要將空字符串映射爲空

private CellProcessor[] getProcessors(int columnNumber){ 

     CellProcessor[] processors = new CellProcessor[columnNumber]; 
     for (int i=0; i< columnNumber; i++){ 
      processors[i] = new ConvertNullTo(""); 
     } 
     return processors; 
    } 

但它仍然無法正常工作。

有什麼方法可以改變這個設置嗎?

回答

0

空列不需要以CSV格式轉義(因此默認情況下超級CSV不會以空字符串引用引號),但是如果您希望總是應用引號,則可以更改超級CSV中的QuoteMode

這是SO上的recent example,它演示了這一點。

更新:如果你只是想引用空字符串,然後確保你寫的值是空字符串(例如,您可能需要使用ConvertNullTo("")),然後用下面的報價模式:

public class QuoteEmptyString implements QuoteMode { 

    /** 
    * {@inheritDoc} 
    */ 
    @Override 
    public boolean quotesRequired(String csvColumn, CsvContext context, 
     CsvPreference preference) { 
     return "".equals(csvColumn); 
    } 

} 
+0

嗨,謝謝你的回覆,但我不想總是應用引號,只是在空字符串上, – Jusleong

相關問題