[OutputStream] - Método flush()

1 resposta
lina

Oi,

Estava eu lendo o javadoc do método flush() super empolgada… até que cheguei na ultima linha:


Flushes this output stream and forces any buffered output bytes to be written out. The general contract of flush is that calling it is an indication that, if any bytes previously written have been buffered by the implementation of the output stream, such bytes should immediately be written to their intended destination.
If the intended destination of this stream is an abstraction provided by the underlying operating system, for example a file, then flushing the stream guarantees only that bytes previously written to the stream are passed to the operating system for writing; it does not guarantee that they are actually written to a physical device such as a disk drive.

The flush method of OutputStream does nothing.

Será que devo seguir a linha de Moises?!

Tchauzin!

1 Resposta

E

Leia-se "a implementação do método “flush” em OutputStream, que é uma classe abstrata, não faz nada “per se”.
Entretanto, ele está lá para que OutputStream implemente a interface Flushable.
Uma classe concreta como “FileOutputStream” tem uma implementação para “flush” que, como você deve ter imaginado, deve chamar o método fflush (ou seu correspondente) para efetuar o flush dos bytes no disco.
Outra classe concreta como “ByteArrayOutputStream” tem uma implementação para “flush” que não faz nada.
Portanto, o comportamento “concreto” depende da classe concreta.

Criado 29 de novembro de 2011
Ultima resposta 29 de nov. de 2011
Respostas 1
Participantes 2