A program I am working on right now has to generate a file. Is it better for me to generate the file’s contents as a string first and then write that string to the file, or should I just directly add the contents to the file?
Are there any advantages of one over the other?
The file will be about 0.5 – 1MB in size.
If you write to a file as-you-go, you’ll have the benefit of not keeping everything in memory, if it’s a big enough file and you constantly flush the stream.
However, you’ll be more likely to run into problems with a partially-written file, since you’re doing your IO over a period of time instead of in a single shot.
Personally, I’d build it up using a StringBuilder, and then write it all to disk in a single shot.