2

ICsvListReader と ICsvListWriter を使用して csv ファイルを読み書きしています。
csvファイルの空文字列がnullに変換されて出力されることがわかりました。
どうすればこれを回避できますか。新しい CellProcessor を作成しようとしました:

private CellProcessor[] getProcessors(int columnNumber){

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

しかし、それはまだ機能していません。

この設定を変更する方法はありますか?

4

1 に答える 1

0

空の列は CSV でエスケープする必要はありません (そのため、デフォルトで Super CSV は空の文字列の周りに引用符を適用しません) が、常に引用符を適用したい場合は、Super CSVでQuoteModeを変更できます。

これを示すSOの最近の例を次に示します。

更新:空の文字列のみを引用したい場合は、書き込む値が空の文字列であることを確認してから (つまり、 を使用する必要がある場合がありますConvertNullTo(""))、次の引用モードを使用します。

public class QuoteEmptyString implements QuoteMode {

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

}
于 2014-02-06T01:53:06.887 に答える