PHPz2017-04-17 11:37:44
StringWriter實作flush方法只是因為它的父類別Writer實作了Flushable接口,
如果你可以看到原始碼,會發現StringWriter其實啥事也沒乾:
/**
* Flush the stream.
*/
public void flush() {
}
flush方法是影響有目的地的buffer,讓其直接輸出到目的地中,
而StringWriter是直接操作記憶體的,沒有目的地,所以flush方法對其沒有意義。
你可以用sw.getBuffer().setLength(0)
來實現,但它並不會縮小buffer內部儲存字元陣列的長度,只是將內容寫成‘ ’
,所以最好的方式還是新建StringWriter物件。