通过 FileWriter 写入特定行 Java
Write in specific row via FileWriter Java
我有一些数据要写入。
代码:
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
等等
一个完美的解决方案是让文件的第一行保存每一列的名称,类似于上面写的。
对于这样的事情,最好使用现有的 Java CSV 库。一种可能性是Apache Commons CSV。 “Google 是你的朋友”如果你想找到教程或其他替代品。
但是如果您想“编写自己的”代码,有多种方法可以做到。更改代码以在 CSV 中记录多行的最简单方法是更改
new FileWriter("statistic.csv");
到
new FileWriter("statistic.csv", true);
以“附加”模式打开文件,新行将添加到文件末尾,而不是替换现有行。
您还应该使用 Java 7+ 尝试使用资源 来管理 FileWriter
。这将确保 FileWriter
始终正确关闭。
如果您想使用 CSV headers、更高效的文件处理等,您需要自己编写 CSVWriter
class。但如果你这样做,你最好使用已经有人设计、编写和测试过的库。 (见上文!)
我有一些数据要写入。 代码:
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
等等
一个完美的解决方案是让文件的第一行保存每一列的名称,类似于上面写的。
对于这样的事情,最好使用现有的 Java CSV 库。一种可能性是Apache Commons CSV。 “Google 是你的朋友”如果你想找到教程或其他替代品。
但是如果您想“编写自己的”代码,有多种方法可以做到。更改代码以在 CSV 中记录多行的最简单方法是更改
new FileWriter("statistic.csv");
到
new FileWriter("statistic.csv", true);
以“附加”模式打开文件,新行将添加到文件末尾,而不是替换现有行。
您还应该使用 Java 7+ 尝试使用资源 来管理 FileWriter
。这将确保 FileWriter
始终正确关闭。
如果您想使用 CSV headers、更高效的文件处理等,您需要自己编写 CSVWriter
class。但如果你这样做,你最好使用已经有人设计、编写和测试过的库。 (见上文!)