Bringing all file operations together into one place

Rémi Forax forax at
Thu Jan 13 03:23:04 PST 2011

On 01/13/2011 12:03 PM, Alan Bateman wrote:
> Rémi Forax wrote:
>> :
>> First, I think this version of the API easier to use.
> Thanks for spending time on it.


>> readLines: why not returning a lazy Collection instead of a List.
>> if a user want a List, this code
>> List<String> lines = new ArrayList<>(Files.readLines(...))
> Like readBytes (or readAllBytes as you've suggested), this method 
> reads the entire file so I didn't make it lazy. An Iterable<String> 
> might be better but I initially proposed it as List so that it could 
> be used as such if needed.
>> Or perhaps better, wait jdk 8 and the stream API.
>> readBytes() can be renamed to readAllBytes().
> Maybe, it was originally readAllBytes way back.

I think I prefer readAllBytes and readAllLines. And future will tell if 
lazy versions will be added later.

>> write(...): javadoc should also contains an example showing how to 
>> create a new File:
>> Files.write(path, bytes, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE);
>> because I'm sure that users will forget TRUNCATE_EXISTING.
> This is the default if you don't specify any options ("That is, if no 
> options are present then file is created if it doesn't exist or is 
> first truncated to a size of 0 if it exists"). The idea is that you 
> shouldn't need to specify any ideas for the common case, ie: 
> Files.write(path, bytes). Maybe I need to make that clearer in the docs.

Perhaps just something saying that this is equivalent to 

> Thanks again (as always).
> -Alan

-------------- next part --------------
An HTML attachment was scrubbed...

More information about the nio-dev mailing list