On Thu, Aug 26, 2010 at 2:04 PM, Darin Fisher <da...@chromium.org> wrote: > I noticed that FileWriter.truncate() can only be used to shorten a file, and > there does not seem to be a good way to grow a file using FileWriter without > appending data to it. By contrast, the POSIX ftruncate function can be used > to grow a file (zero padding it): > From ftruncate(2): > "If the file previously was larger than this size, the extra data is lost. > If the file previously > was shorter, it is extended, and the extended part reads as null bytes > ('\0')."
I see no reason we can't add this; I just left it off for simplicity, but your use case makes sense. > I think there are use cases for wanting to grow a file in advance of writing > data to it. For example, you might implement a system that downloads chunks > of a file in parallel using multiple XMLHttpRequest objects. The chunks may > arrive out-of-order. > A possible alternative API would be to support seeking beyond the end of the > file or writing to a starting offset that is beyond the length fo the file. > It may also be reasonable to support all of those in addition to truncating > to an offset greater than the length of the file. I think this may be a little messier, and there's no reason to make up a new paradigm when the POSIX one is well-known and sufficient. If nobody objects, I'll just add it. Eric