簡體   English   中英

不逐行書寫

[英]not writing line by line

private static void displaytoFile(int trial, int count) {
        // TODO Auto-generated method stub
        String answer;
         try{
              // Create file 
                  FileWriter fstream = new FileWriter(outputfile);
                  BufferedWriter out = new BufferedWriter(fstream);
                  answer = "Case #"+trial+": "+count;
                  out.write(answer);
                  out.newLine();
              //Close the output stream
                out.close();
              }catch (Exception e){//Catch exception if any
                  System.err.println("Error: " + e.getMessage());
              }


    }

displaytoFile()方法在我的項目中被循環調用,但是我無法一行一行地寫入文件。它僅寫入最后一行,即在上一次迭代過程中傳遞的參數。我在控制台和其他代碼中進行了測試可以,它顯示所有內容,但此代碼段似乎有問題,因為它似乎覆蓋了以前的值。如何才能逐行寫入文件?

使用FileWriter(String, boolean)構造函數以附加輸入,而不是重寫整個文件:

FileWriter fstream = new FileWriter(outputfile, true);
 FileWriter fstream = new FileWriter(outputfile);
 BufferedWriter out = new BufferedWriter(fstream);

 answer = "Case #"+trial+": "+count;
 out.write(answer);
 out.newLine();

 //Close the output stream
 out.close();

有問題。 這是因為在循環的每次迭代中,您都清除了文件,然后將當前行寫入其中。 您應該在循環之前打開文件,然后在循環之后關閉文件。 或者確保像現在所做的那樣先添加到文件,而不是先清除然后再寫。

您必須指出要附加到文件中

在此處查看方法文檔

暫無
暫無

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

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