4

私は apache-commons-csv 1.6 が初めてです

すべてのレコードを改行してcsvファイルを印刷するという基本的な要件があります。CSVPrinter の println メソッドを使用しようとしています。奇妙な理由で、出力ファイルには改行文字がありません。すべてが 1 行で印刷されます。

出力を Notepad++ で開いて、印刷できない文字を表示しようとしました。レコード間に文字はありません。どんな助けでも大歓迎です。ありがとう。

CSVPrinter csvPrinter = null;

if(delimiter != null && delimiter.length() > 0) {
    csvPrinter = new CSVPrinter(new FileWriter(outputFile), CSVFormat.newFormat(delimiter.charAt(0)).withHeader(header));
}else {
    csvPrinter = new CSVPrinter(new FileWriter(outputFile), CSVFormat.DEFAULT.withHeader(header));
}

for(Map<String,String> record : inputList) {
    List<String> valueList = new ArrayList<String>();
    for(String key : record.keySet()) {
        valueList.add(record.get(key));
    }
    System.out.println(valueList);
    csvPrinter.printRecord(valueList);
    csvPrinter.println();
}
csvPrinter.close();

期待される結果:

ID|タイプ|値|キー

4|Excel|0|Excel.sheet.no

5|エクセル|日/月/年|エクセル.日付.形式

6|エクセル|0|エクセル.baserate.rownum

実際の結果: id|type|value|key4|excel|0|excel.sheet.no5|excel|dd/MM/yyyy|excel.date.format6|excel|0|excel.baserate.rownum

4

2 に答える 2