Re: which OutputStreams are buffered?
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed
On Tue, 20 May 2008, Roger LindsjF wrote:
Tom Anderson wrote:
On Sat, 17 May 2008, Neil Coffey wrote:
Except that you *do* need to be aware of the secret buffering for
"you can't rely on data being written to a file until you've flushed the
So, for things like FileOutputStream, you have to treat them as both
unbuffered (by wrapping them in a buffered stream) and buffered (by
remembering to flush) at the same time!
Actually, you are still not sure if the data has been written to the
file, only that the data has been passd from the Java side to the OS
side. To ensure data has been commited to disk you should call synch()
on the FileDescriptor. (Although this is not necessary for most
My impression was that this was not the case - that
FileOutputStream.flush() operates the C library or OS's flush mechanism.
Ah, no, OutputStream.flush:
"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."
there is never a wrong time to have your bullets passing further into
someone's face -- D