2010-09-17 12 views
32

¿Cuál es la forma correcta de "vaciar" un StringWriter en Java para que pueda reutilizar el StringWriter sin tener que crear uno nuevo? Ni StringWriter.flush() ni StringWriter.close() parecen tener el efecto deseado.¿Cómo se "vacía" un StringWriter en Java?

+0

¿De qué manera ellos no tienen el efecto deseado? Además, ¿por qué quieres reutilizarlo en lugar de crear uno nuevo? – zigdon

+2

No vacían el búfer 'StringWriter', que es el efecto que deseo. –

Respuesta

49

¿Qué le parece llamar al getBuffer().setLength(0)?

+0

dulce, agradable gracias. – Gurnard

+2

Si inicialmente configura StringWriter en un tamaño específico, ¿este setLength reducirá ese tamaño a 0? –

+2

Esto mantiene la capacidad del buffer de la misma. Si desea desasignar la memoria, use 'writer.getBuffer(). TrimToSize();' después de establecer la longitud. – thomas88wp

0

Alternativamente, también podríamos borrar el buffer usando el siguiente código:

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

¿Esto borra el contenido del búfer o desasigna el almacenamiento del búfer? En este caso, quiero borrar los contenidos. –

+0

Borra el contenido ... –

+0

Si se desasigna la memoria para el búfer borrado, no estoy seguro ... Se puede consultar con buf.capacity() –

Cuestiones relacionadas