2012-02-24 3 views
1

ファイルリストでこの文字列をファイルに保存しようとしましたが、最後のものだけが保存されます。ここで問題は何ですか? :(ファイルリストを.txtに保存する

public void fileprinter() throws IOException{  
    File dir = new File("c:"); 
    String[] children = dir.list(); 
    if (children == null) { 
     } else { 
      for (int i=0; i<children.length; i++) { 
       String filename = new StringBuffer().append(children[i]).toString(); 
       System.out.println(filename); 
       Writer output; 
       File file = new File("D:/file.txt"); 
       output = new BufferedWriter(new FileWriter(file)); 
       output.write(filename); 
       output.close(); 
     } 
    } 
} 

答えて

4

あなたは、ループの外でオープンなBufferedWriter(一回!)

。これだけ最後の行は「生き残る」になる、ループ内で同じファイルを上書きしておくと、行われたときに、それを閉じます。

別の方法では追加モードで開くことができますが、同じファイルを何度も何度も繰り返してループ内で開く必要はありません。

関連する問題