Estaba ayudando a un amigo a escribir código Java, que no sabe mucho sobre Java. Así que le escribí algunas funciones auxiliares para hacer fácilmente cosas que son un poco peculiares en sus ojos. Una de ellas es una función que escribe una cadena en OutputStream
. Eche un vistazo:System.out cerrado? ¿Puedo volver a abrirlo?
public void write(String txt, OutputStream out) {
PrintWriter printer = new PrintWriter(out);
printer.print(txt);
printer.close();
}
Ahora, puede usarlo fácilmente de diferentes maneras para escribir donde desee. Por ejemplo, podría hacer eso:
(new StreamHelper()).write("Hello Test", System.out);
Hacer eso descubrí que después System.out.println()
no escribe nada a la cáscara más. Así que creo que tal vez printer.close()
también cerró automáticamente System.out
y me pregunto cómo reactivarlo para poder usarlo después de que esta función haya terminado nuevamente.
¿Mi suposición es correcta? (¿Cómo podría haberlo descubierto sin preguntar aquí?)
¿Cómo puedo seguir usando System.out
después de una llamada a la función write()
?
¿Hay mejores formas de escribir tal función auxiliar?
I cree, puede usar 'flush' en lugar de' close() '. –
Puede hacer que el método 'write' sea estático' para evitar la llamada fea' (new StreamHelper()) write (...) '. – adarshr
@Stas Kurilin: Lo intenté y funciona. – erikbwork