我是java的新手,我正在将数据写入文件。我的代码如下所示:
File file= new File("model/file.csv");
FileOutputStream writer=null;
try {
writer = new FileOutputStream(file, true);
} catch (IOException e) {
e.printStackTrace();
}
PrintWriter pw=null;
pw = new PrintWriter(writer);
try {
for (int j=0;j< 24; j++)
pw.format("%.3f%n",MyData);
}
finally {
pw.close();
}
输出:
1
2
3
4
但是当我第二次运行程序时,我的输出文件如下所示:
输出:
1
2
3
4
1
2
3
4
好的,我认为
writer = new FileOutputStream(file, true);
表示它附加,但我希望刷新文件并且不包含先前程序执行的数据。而冲洗并没有帮助。
答案 0 :(得分:0)
FileOutputStream API显示附加参数将...附加到文件中!所以把它改成假,或者把它关掉。
writer = new FileOutputStream(file);
答案 1 :(得分:0)
我的建议是使用FileWriter
之类的
以下语法创建一个FileWriter对象,给定一个带有布尔值的文件名,指示是否附加写入的数据。
FileWriter(String fileName, boolean append)
将布尔值设置为false
,表示您不想进行追加。
例如:
try (PrintWriter out = new PrintWriter(new FileWriter("login.txt", false));) {
for (int i = 0; i < 10; i++) {
out.println(i);
}
} catch (IOException e) {
System.out.println(e);
}