但是,当我打开CSV文件时,它似乎是反向写入的。Excel首先抱怨行数。但是,仅显示原始数据集的最后一行。
我认为这可能是由于CSV行之间缺少换行符引起的。
实际上,当您在文件中写一行时,您不会写换行符。您可以
writer.append(System.lineSeparator())在每个读取行之后编写它:
作为旁注:
1)为什么不在循环之前将其移动(否则效率较低):
FileWriter writer = new FileWriter("src/dataNew/BelgiumNew1.csv", true);2)您不应该在每个读取行刷新并关闭文件,因为它效率较低:
writer.append(line);writer.flush();writer.close();System.out.println(line);
应该足够了:
writer.append(line);System.out.println(line);
保持:
writer.flush();writer.close();
在如下
finally语句中:
FileWriter writer = new FileWriter("src/dataNew/BelgiumNew1.csv", true);try{ // all your operations to handle the file}catch(Exception e){ // your exception handling}finally{ if (writer!=null){ writer.flush(); writer.close(); }}编辑以回答评论:
如果您觉得输出文件包含多个记录集,则可能与
FileWriter您使用的附加模式有关。
替换为:
FileWriter writer = new FileWriter("src/dataNew/BelgiumNew1.csv", true);以此不使用此模式:
FileWriter writer = new FileWriter("src/dataNew/BelgiumNew1.csv", false);


