首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PrintWriter / PrintStream需要冲洗吗?

PrintWriter / PrintStream需要冲洗吗?
EN

Stack Overflow用户
提问于 2012-05-17 17:16:59
回答 1查看 1.9K关注 0票数 2

我想使用PrintWriter或PrintStream将格式化的字符串写入到一个输出流(我无法控制它的创建)。然而,冲洗底层的OutputStream有很大的性能打击。

是否需要刷新PrintWriter / PrintStream。

如果我需要刷新PrintStream / PrintWriter;我可以这样做而不刷新底层OutputStream,还是需要创建一个“刷新保护器”OutputStream来包装底层流?

为了在这一点上更清楚一点,我想要实现

代码语言:javascript
复制
 public void writeSomeString(OutputStream foo);

但是对于同一个OutputStream (foo),这个方法可能会被多次调用。每个调用都必须构造自己的PrintWriter。我知道这样做很难看,但我无法控制接口或foo的创建。

我试图避免每种方法都必须刷新foo,只为了刷新自己的PrintWriter / PrintStream。

所以我想:

代码语言:javascript
复制
public void writeSomeString(OutputStream foo) {
    PrintStream s = new PrintStream(foo);
    s.println("bar");
    // other code
}

我想完全避免这种方法--冲洗foo

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-17 18:13:25

需要在以下条件下刷新PrintWriter:

代码语言:javascript
复制
ServerSocket s = new ServerSocket(4444);

Socket incoming = s.accept();

OutputStream output = s.getOutputStream();

PrintWriter pw = new PrintWriter(output,true);

System.out.println(pw.write(new Scanner(System.in).nextLine()));

PrintWriter构造函数中的第二个参数是flush,它接受布尔数据类型,我们需要刷新数据,所以即使缓冲区不是满的,它也会被抛到控制台上。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10640360

复制
相关文章

相似问题

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