¿Por qué ciertas corrientes se deben purgar (FileOutputStream
y las transmisiones desde Sockets) mientras que la secuencia de salida estándar no?Cuándo/por qué llamar a System.out.flush() en Java
Cada vez que alguien utiliza el objeto System.out
PrintStream
, ya sea durante una llamada o println()
write()
, nunca se vacía el stream. Sin embargo, otros programadores suelen llamar al flush()
a PrintStream
/PrintWriter
con otras transmisiones.
Hace poco hice esta pregunta a varios programadores y algunos creen que hay algo de manejo de fondo en Java para auto-enjuagar el flujo System.out
, pero no puedo encontrar ninguna documentación sobre eso.
Algo como esto me hace preguntarme si simplemente llamar a System.out.println()
es independiente de la plataforma, ya que algunos sistemas pueden necesitar que purgue la corriente.
solo válido 'si es verdadero', pero ¿verdad? No pude encontrar ninguna documentación sobre el valor de autoFlush para System.out ... –
@Carlos, depende del sistema que arranque la JVM y lance la clase principal con lo que 'System.out' y' System.err' son obligado y cómo se tiñen. Cuando utiliza el binario 'java' para iniciar una clase' System.out' se inicializa a algo así como 'new PrintStream (nuevo FileOutputStream (FileDescriptor.out), true, System.getProperty (" file.encoding "))' pero otro JVMs difieren. Obviamente, una JVM que inserta applets hace algo diferente. –
@MikeSamuel, ¿Significa que todavía * necesitamos * para enjuagar de todos modos, ya que el comportamiento del autoenjuague no está ** garantizado ** por las especificaciones? – Pacerier