为了账号安全,请及时绑定邮箱和手机立即绑定

java stringwriter 的 flush()问题

java stringwriter 的 flush()问题

心有法竹 2019-03-29 19:19:26
我想知道我在第20行对sw字符串输出流进行了刷新,那为什么21行还会有输出?
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

StringWriter实现flush方法只是因为它的父类Writer实现了Flushable接口,

如果你可以看到源码,会发现StringWriter其实啥事也没干:


    /**

     * Flush the stream.

     */

    public void flush() {

    }

flush方法是影响有目的地的buffer,让其直接输出到目的地中,

而StringWriter是直接操作内存的,没有目的地,所以flush方法对其没有意义。


你可以用sw.getBuffer().setLength(0)来实现,但它并不会缩小buffer内部存储字符数组的长度,只是将内容写成‘\0’,所以最好的方式还是新建StringWriter对象。


查看完整回答
反对 回复 2019-04-15
  • 1 回答
  • 0 关注
  • 600 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号