0

Windows 7 の NetBeans 7.3.1 で Java SE を開発しています。

各行に 1 つずつ、数字のセットを ASCII テキスト ファイルに書き込もうとしています。

            FileWriter fstream = new FileWriter(outputFileName, false); //false tells to not append data.
            BufferedWriter out = new BufferedWriter(fstream);
            for (int i=0; i<numBins; ++i){
                String str=Integer.toString(hist[i]);
                str.concat("\n");
                out.write(str);
            }
            br.close();

numBins は 6 で、プログラムはエラーなしで実行されます。デバッガーをチェックして、

 out.write(str); 

6回呼び出されます。hist[i] は小さい整数です。何らかの理由で、結果のファイルは空でサイズがゼロです。

4

2 に答える 2

1

BufferedWriter オブジェクトを閉じます

 FileWriter fstream = new FileWriter(outputFileName, false); //false tells to not append data.
            BufferedWriter out = new BufferedWriter(fstream);
            for (int i=0; i<numBins; ++i){
                String str=Integer.toString(hist[i]);
                str.concat("\n");
                out.write(str);
            }
            out.close();
于 2013-08-10T03:11:23.010 に答える
1

コンテンツをファイルにフラッシュするには、BufferedWriter オブジェクトで close メソッドを呼び出す必要があります。

   FileWriter fstream = new FileWriter(outputFileName, false); //false tells to not append data.
            BufferedWriter out = new BufferedWriter(fstream);
            for (int i=0; i<numBins; ++i){
                String str=Integer.toString(hist[i]);
                str.concat("\n");
                out.write(str);
            }
           // add this also
           out.close();
于 2013-08-10T03:12:21.533 に答える