Bringing all file operations together into one place
Alan Bateman
Alan.Bateman at oracle.com
Tue Jan 11 13:12:43 PST 2011
One of the things that I've been looking at recently is the file system
API and to see how it might evolve in the future, post jdk7. One
confusing thing is that the file operations are currently split over
several classes. At it stands, if a file operation requires new support
from the provider implementation then it is added to the Path class, if
it is independent of the provider it can be defined by the Files class,
file attribute helper methods are defined by the Attributes class. This
needs to be cleaned up so that it's clear and obvious where to add new
file operations in the future. To that end, I have an update to the API
[1] that moves all the file operations into the Files class and removes
the Attributes class. For the most part, the methods defined by Files
just delegate to the FileSystem associated with the Path or are
implemented in terms of other methods. The alternative moves everything
to Path but that is much less satisfactory and results in a huge class
of path and file operations. Another advantage of having Path only
define path methods is that it opens the possibility of look at
interfaces again, esp. with extension methods potentially coming in 8.
There are a couple of other small updates too. The readXXXFileAttributes
methods to read attributes in bulk have been replaced with a single
readAttributes method that takes a type token to specify the required
attributes - this is something that Joe Darcy suggested. There are also
a few new convenience methods for simple/common cases.
Feedback welcome!
-Alan
[1] http://openjdk.java.net/projects/nio/javadoc
More information about the nio-dev
mailing list