我们运行一个Java应用程序,该应用程序处理大量数据,然后将其写入CSV文件。我们注意到,大约有2%的行被弄乱了,我们也不知道为什么。
我们使用以下函数编写行:
static void writeLineToCSV(List<String> fields, Writer csvWriter) throws IOException {
StringBuilder line = new StringBuilder();
for (int i = 0; i < fields.size() - 1; i++) line.append(fields.get(i)).append(",");
line.append(fields.get(fields.size() - 1)).append("\n");
csvWriter.write(line.toString());
csvWriter.flush();
}
哪个行的排列如下:
2018-09-21T23:00:11.555Z,1537570811000,-7900,0.57642,39,0.57585,...
2018-09-21T23:00:11.917Z,1537570811000,-7900,0.57642,39,0.57585,...
2018-09-21T23:00:14592322,0.57377,-100,0.57644,1178.59788311,0.57375,...
2018-09-21T23:00:10.041Z,1537570810000,-4691.50311435,0.576,...
2018-09-21T23:00:10.041Z,1537570810000,-4691.50311435,0.576,...
请注意,由于某种原因,第三行中的第一字段和第二字段如何进行处理,而分隔逗号却消失了。
编辑:为完成起见,CSV文件的架构为:Instant.toString(), timestamp (long), BigDecimal, ..., BigDecimal