簡體   English   中英

Java將臨時數據保存到文件

[英]Java save temporary data to file

我有以下代碼:

            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();


        }

我的問題是此循環運行時間為數小時,並且可能會中斷。 所以我在里面做這個文件寫入/緩沖寫入。 因此,每次他取回數據都比我想將其寫入文件時要多。

但是,當我這樣做時,總是只向我的文件寫入1行,什么也沒有。

我該如何改善? 我嘗試使用firewriter,bufferedwriter,但這有點麻煩。

我知道這是一個愚蠢的問題,但是由於基本示例不起作用,因此我無法說明如何解決它。

將這些行放在循環之外(之前)。 您將在每次循環迭代中覆蓋文件。

       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

您可以嘗試使用帶有TRUE參數的FileWriter:

 FileWriter fw = new FileWriter(file.getAbsoluteFile(),true); //see here!
 BufferedWriter bw = new BufferedWriter(fw);

這樣,新的文本將被附加到文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM