我有这段代码:
for (Record record : Adatok) {
//System.out.println(record.toString2());
act_data=tmp.testtestclass(record);
System.out.println("*******");
System.out.println("Feldolgozás eredménye:");
System.out.println(data_restructure(act_data));
// String content = record.nev + ";" + record.address + "\n"+"asd";
File file = new File("resultset.csv");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(data_restructure(act_data) + "\n");
bw.close();
}
我的问题是这个循环运行时间是几个小时,可能是中断。所以我在其中执行此filewrite / bufferedwrite。 因此,每当他获得数据时,我都会将其写入文件。
但是当我这样做时,我的文件总是只写1行而不是什么。
我该如何改进?我尝试过使用firewriter,bufferedwriter,但它有点烦人。
我知道这是一个愚蠢的问题,但我无法弄清楚如何解决它,因为基本的例子不起作用。
答案 0 :(得分:1)
将这些线放在循环之外(之前)。您在每次循环迭代中覆盖文件。
File file = new File("resultset.csv");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
此外,
bw.close(); // outside (after) the loop
答案 1 :(得分:1)
您可以尝试将FileWriter与TRUE参数一起使用:
FileWriter fw = new FileWriter(file.getAbsoluteFile(),true); //see here!
BufferedWriter bw = new BufferedWriter(fw);
通过执行此操作,新文本将附加到文件中。