Bringing all file operations together into one place
Alan Bateman
Alan.Bateman at oracle.com
Thu Jan 13 03:03:39 PST 2011
Rémi Forax wrote:
> :
> First, I think this version of the API easier to use.
Thanks for spending time on it.
>
> Some comments about java.nio.file.Files:
> readAttributes(Path <http://openjdk.java.net/projects/nio/javadoc/java/nio/file/Path.html> path, String <http://download.java.net/jdk7/archive/b123/docs/api/java/lang/String.html?is-external=true> attributes, LinkOption <http://openjdk.java.net/projects/nio/javadoc/java/nio/file/LinkOption.html>... options)
>
>
> should returns a Map<String,Object> if possible.
> Map<String,?> will let users deal with wildcard capture.
> As an exercise, try to find the type XXX in this code:
> XXX entrySet = readAttributes(path, attributes, options).entrySet();
I thought that one was fixed a long time ago but it seems not. Thanks
for bringing it up. I'll include this in this round of updates.
>
> 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.
>
> 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.
Thanks again (as always).
-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/nio-dev/attachments/20110113/92a08c2a/attachment.html
More information about the nio-dev
mailing list