java stringwriter 的 flush()问题
天蓬老师
天蓬老师 2017-04-17 11:35:44
0
1
628

我想知道我在第20行对sw字符串输出流进行了刷新,那为什么21行还会有输出?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(1)
PHPzhong

StringWriter实现flush方法只是因为它的父类Writer实现了Flushable接口,
如果你可以看到源码,会发现StringWriter其实啥事也没干:

    /**
     * Flush the stream.
     */
    public void flush() {
    }

flush方法是影响有目的地的buffer,让其直接输出到目的地中,
而StringWriter是直接操作内存的,没有目的地,所以flush方法对其没有意义。

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!