Flushing Streams

Parece ser obvio lo que digo acá, pero repetidamente tenemos situaciones donde nos olvidamos de hacer esto y luego pagamos las consecuencias. El típico problema es que hay 2 programas comunicándose a través de la network, el primero le habla al segundo, el segundo le contesta pero como no hizo un flush el primero nunca se entera de la respuesta.

Simplemente hagan flush() en un stream despues de haber escrito en él.

OutputStream out;
byte[] data
out.write(data);
out.flush();

Si están escribiendo texto, es bueno utilizar un PrintWriter para output. Esta clase tiene un constructor que deja hacer flush cada vez que escribimos en él.

PrintWriter writer = new PrintWriter(out, true);
writer.writeLine("some text"); 

Con ésta utilidad nos evitamos hacer flush cada vez que escribimos.

Categories: java

Rodrigo Asensio

Apasionado por la tecnología

Leave a Reply

Your email address will not be published. Required fields are marked *