2017-05-11 89 views
0

我正在嘗試使用Java將一系列行寫入文本文件。使用Java將輸出寫入文本文件

代碼:

File file = new File("file.txt"); 
FileWriter writer = new FileWriter(file,true); 
for (first for loop) { 
      for (second for loop) { 
       if (condition TRUE){ 
        writer.write(element1 + element2.toString()+"\n"); 
       } 
       else { 
       writer.write("-"+ element1 + element2.toString()+"\n"); 
       } 
      } 
     } 

錯誤:

是越來越創建只有一個空文件。請,任何建議將是有益

+1

你可以給我們你的實際代碼嗎?使用'FileWriter'很好,你確實需要關閉它。 – jiveturkey

+0

@jnbbender感謝你的時間給出的答案解決了它。 –

+0

可能的重複[如何創建一個文件並在Java中寫入?](http://stackoverflow.com/questions/2885173/how-do-i-create-a-file-and-write-to-它功能於JAVA) – Thierry

回答

0

替換此:

FileWriter writer = new FileWriter(file,true); 

有:

BufferedWriter writer = new BufferedWriter(new FileWriter(file,true)); 

,並在最後:

writer.close(); 
-1

下面是代碼看起來應該像你可以在任何適用的地方替換你的邏輯。

import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 

public class WriteAFile { 

    public static void main(String [] args) { 
     String element1="First Element"; 
     Integer element2=10; 
     FileWriter writer = null; 

     try { 
      writer = new FileWriter(new File("file.txt"), true); 

      for (int i=0; i<5; i++) { 
       for (int j=0; j<5; j++) { 
        if (true){ //Write the condition here 
         writer.write(element1 + element2.toString()+"\n"); 
        } 
        else { 
         writer.write("-"+ element1 + element2.toString()+"\n"); 
        } 
       } 
      } 
      writer.close(); 
     } 
     catch (IOException ioe) { 
      ioe.printStackTrace(); 
     } 
    } 
} 
0

您提供的代碼段沒有任何問題。問題可能是,您的for循環中的conditionsif語句永遠不會被滿足。因此,你的代碼永遠不會去

writer.write(element1 + element2.toString()+"\n");

所以要能夠幫助你,除非你提供實際的代碼。

此外,您還必須確保file.txt存在。如果你在Windows環境下使用絕對路徑如C:\\Users\\YOUNG MILLIE\\Documents\\file.txt會更好。

因爲我試過這個例子,它工作正常。

 File file = new File("C:\\Users\\YOUNG MILLIE\\Documents\\file.txt"); 
     FileWriter writer = new FileWriter(file,true); 
     for (int i = 0; i <= 100;i++) { 
      for (int k = 0; k <= 50;k++) { 
       if (i <=50){ 
        writer.write(k +"\n"); 
       } 
       else { 
        writer.write("-"+ k +"\n"); 
       } 
      } 
     } 
     writer.close();