Java将临时数据保存到文件中

时间:2014-09-08 09:41:15

标签: java loops file-io

我有这段代码:

            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,但它有点烦人。

我知道这是一个愚蠢的问题,但我无法弄清楚如何解决它,因为基本的例子不起作用。

2 个答案:

答案 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);

通过执行此操作,新文本将附加到文件中。