私は 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