2010-09-17 22 views
32

Cách chính xác để "trống" StringWriter trong Java để tôi có thể sử dụng lại StringWriter mà không cần phải tạo một cái mới? Không phải StringWriter.flush() cũng không phải StringWriter.close() dường như có hiệu quả mong muốn.Làm thế nào để bạn "trống rỗng" một StringWriter trong Java?

+0

Bằng cách nào làm họ không có hiệu quả mong muốn? Ngoài ra, tại sao bạn muốn sử dụng lại nó thay vì tạo một cái mới? – zigdon

+2

Chúng không làm trống bộ đệm 'StringWriter', đó là hiệu ứng mà tôi mong muốn. –

Trả lời

49

Làm thế nào để gọi getBuffer().setLength(0)?

+0

ngọt ngào, cảm ơn một. – Gurnard

+2

Nếu ban đầu bạn đặt StringWriter thành một kích thước được chỉ định, thì setLength này có giảm kích thước đó xuống 0 không? –

+2

Điều này giữ dung lượng của bộ đệm giống nhau. Nếu bạn muốn deallocate bộ nhớ, sử dụng 'writer.getBuffer(). TrimToSize();' sau khi thiết lập độ dài. – thomas88wp

0

Ngoài ra, chúng tôi cũng có thể xóa bộ đệm sử dụng đoạn mã sau:

StringBuffer buf = ****.getBuffer(); 
buf.delete(0,buf.length()); 
+0

Điều này có xóa nội dung bộ đệm hoặc giải quyết lưu trữ bộ đệm không? Trong trường hợp này, tôi muốn xóa nội dung. –

+0

Nó xóa nội dung ... –

+0

Nếu nó deallocates bộ nhớ cho bộ đệm xóa, tôi không chắc chắn ... Bạn có thể kiểm tra với buf.capacity() –

Các vấn đề liên quan