首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >out.write多次运行,但结果文件为空。

out.write多次运行,但结果文件为空。
EN

Stack Overflow用户
提问于 2013-08-10 03:09:41
回答 2查看 132关注 0票数 0

我正在Windows7上的NetBeans 7.3.1上用Java进行开发。

我试图写一组数字,每行一个,到一个ASCII文本文件。

代码语言:javascript
复制
            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,程序运行时没有任何错误。我检查调试器和

代码语言:javascript
复制
 out.write(str); 

叫了6次。组分是小整数。由于某种原因,生成的文件是空的,大小为零。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-10 03:11:23

关闭BufferedWriter对象

代码语言:javascript
复制
 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
EN

Stack Overflow用户

发布于 2013-08-10 03:12:21

您需要调用BufferedWriter对象上的close方法来将内容刷新为文件:

代码语言:javascript
复制
   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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18158305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档