out.write运行几次但生成的文件为空

时间:2013-08-10 03:09:41

标签: java bufferedwriter

我正在Windows 7上的NetBeans 7.3.1上使用Java SE进行开发。

我正在尝试在数字上写一个集合,每行一个,写入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]是小整数。由于某种原因,生成的文件为空,大小为零。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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();