通过 FileWriter Java 在特定行中写入
Posted
技术标签:
【中文标题】通过 FileWriter Java 在特定行中写入【英文标题】:Write in specific row via FileWriter Java 【发布时间】:2022-01-11 17:41:14 【问题描述】:我有一些数据要写。 代码:
private void saveStats(int early, int infected, int recovered, int deads, int notInfected, int vaccinated, int iteration)
try
FileWriter txt = new FileWriter("statistic.csv");
txt.write((String.valueOf(early)));
txt.write(";");
txt.write(String.valueOf(infected));
txt.write(";");
txt.write((String.valueOf(recovered)));
txt.write(";");
txt.write((String.valueOf(deads)));
txt.write(";");
txt.write((String.valueOf(notInfected)));
txt.write(";");
txt.write((String.valueOf(vaccinated)));
txt.write("\n");
txt.close();
catch (IOException ex)
ex.printStackTrace();
System.out.println("Error!");
我将使用这个函数来保存迭代次数和一些额外的数据;例如:
迭代 感染 恢复 死亡 未感染 接种疫苗
1 200 300 400 500
2 300 400 600 900
等
一个完美的解决方案是让文件的第一行保存每一列的名称,类似于上面写的内容。
【问题讨论】:
请添加 CSV 文件的文本,显示您希望添加的行和列。 imgur.com/oxm4LQJ 类似的东西。第三次迭代将在第 4 行。 【参考方案1】:对于这样的事情,最好使用现有的 Java CSV 库。一种可能性是Apache Commons CSV。如果您想查找教程或其他替代方法,请“Google 是您的朋友”。
但是,如果您想“推出自己的”代码,有多种方法可以做到。更改代码以使其在 CSV 中记录多行的最简单方法是更改
new FileWriter("statistic.csv");
到
new FileWriter("statistic.csv", true);
以“追加”模式打开文件,新行将添加到文件末尾,而不是替换现有行。
您还应该使用 Java 7+尝试使用资源来管理 FileWriter
。这将确保FileWriter
始终正确关闭。
如果您想使用 CSV 标头、更高效的文件处理等,您需要编写自己的 CSVWriter
类。但是如果你这样做,你最好使用已经设计、编写和测试过的库。 (见上文!)
【讨论】:
我下载了 Apache Commons CSV,但昨天我没有时间做任何事情。那个 append-true 正是我所需要的!谢谢!以上是关于通过 FileWriter Java 在特定行中写入的主要内容,如果未能解决你的问题,请参考以下文章
如何避免以特定符号开头的行中字符串的文本突出显示[java]
JAVA IO流相关代码(FileWriter,FileReader)