0

我正在 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] 是小的整数。由于某种原因,生成的文件是空的并且大小为零。

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 回答