首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java PrintWritter或BufferedOutputStream方法刷新在Windows2012上不起作用

java PrintWritter或BufferedOutputStream方法刷新在Windows2012上不起作用
EN

Stack Overflow用户
提问于 2017-11-15 06:50:55
回答 1查看 511关注 0票数 1

我只有Windows 2012服务器有问题。我正在尝试使用PrintWritter或BufferedOutputStream将一个大文件写入磁盘,问题是在Windows2012中,当调用flush()方法将数据流发送到文件时不起作用。只有在调用close()方法时才将数据写入文件。问题是数据保存在内存中,消耗了大量的文件。在我的Windows 7或8中工作正常。Windows2012发布了一些想法?谢谢,

简单的例子:

代码语言:javascript
复制
File file = new File("myFile.txt");
        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(file)), "UTF-8"), 1024 * 4);
        for (int i = 0; i < 1000000; i++) {
            out.write("Some info here");
            if (i % 300 == 0) {
                out.flush();

            }
        }
        out.close();
EN

回答 1

Stack Overflow用户

发布于 2017-11-15 07:10:00

即使在Windows2012上,

  1. flush()也能正常工作。然而,PrintWriter确实接受了异常:您需要检查那些具有checkError()的异常。最好只使用最多4096或8192个字符的BufferedWriter.
  2. A,而不确定缓冲的是哪一个(或您在BufferedWriter中指定的任何字符),因此内存丢失在其他地方。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47296576

复制
相关文章

相似问题

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