Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.help > #2383
| From | Knute Johnson <nospam@knutejohnson.com> |
|---|---|
| Newsgroups | comp.lang.java.help |
| Subject | Re: FileOutputStream questions |
| Date | 2012-12-25 11:45 -0800 |
| Organization | A noiseless patient Spider |
| Message-ID | <kbcvoq$ijh$1@dont-email.me> (permalink) |
| References | <p4ejd893hi08mkpjabtfn6mcbemhmuceua@4ax.com> |
On 12/25/2012 6:36 AM, Roedy Green wrote: > I have just realised I do not understand some basic things about > unbuffered FileOutputStream. > > I used them in two ways, wrapping in a BufferedOutputStream or > BufferedWriter, or writing an entire file in one i/o without > buffering. > > If you write single bytes at a time, will you trigger physical I/O on > every byte, or is there some small buffer in there anyway? > > I have experimented with flush during file write. The file size stays > at 0 until I close, at least to DIR. > > What I want is to log bytes that will be largely recoverable even if > the program terminates unexpectedly without closing. Flush does not do > it. Close/reopen periodically seem at bit heavy handed. Is there > something I am missing? > I use a buffered output stream with the file opened in append mode to keep some log files. I flush those after every write. "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." I haven't had any problems with the above getting it to write immediately. All of this has been on WinXP which I assume you probably are with the mention of DIR. Under Windows, even the OS has a write buffer. I don't know what causes it to commit or if a Java stream flush is passed through. I just looked at the source code and OutputStream.flush() doesn't do anything. -- Knute Johnson
Back to comp.lang.java.help | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
FileOutputStream questions Roedy Green <see_website@mindprod.com.invalid> - 2012-12-25 06:36 -0800
Re: FileOutputStream questions markspace <markspace@nospam.nospam> - 2012-12-25 07:54 -0800
Re: FileOutputStream questions Roedy Green <see_website@mindprod.com.invalid> - 2012-12-26 01:30 -0800
Re: FileOutputStream questions Jukka Lahtinen <jtfjdehf@hotmail.com.invalid> - 2012-12-25 18:32 +0200
Re: FileOutputStream questions Knute Johnson <nospam@knutejohnson.com> - 2012-12-25 11:45 -0800
Re: FileOutputStream questions Roedy Green <see_website@mindprod.com.invalid> - 2012-12-26 01:32 -0800
Re: FileOutputStream questions Knute Johnson <nospam@knutejohnson.com> - 2012-12-26 09:19 -0800
Re: FileOutputStream questions Roedy Green <see_website@mindprod.com.invalid> - 2012-12-25 13:17 -0800
Re: FileOutputStream questions Knute Johnson <nospam@knutejohnson.com> - 2012-12-25 14:05 -0800
Re: FileOutputStream questions Roedy Green <see_website@mindprod.com.invalid> - 2012-12-26 01:35 -0800
Re: FileOutputStream questions markspace <markspace@nospam.nospam> - 2012-12-26 07:46 -0800
Re: FileOutputStream questions Stanimir Stamenkov <s7an10@netscape.net> - 2013-01-01 02:36 +0200
csiph-web