exists and notExists
Alan Bateman
Alan.Bateman at Sun.COM
Tue May 27 00:28:31 PDT 2008
Elliotte Harold wrote:
> :
> As I read the JavaDoc, the only reason the exists() method won't be
> able to say is if it throws a SecurityException. Correct?
This is nothing to do with security managers and SecurityExceptions. The
Java virtual machine may not have access to the file or one of the
directories in the path. In that case, it is not possible to say if the
file exists or not. There can be many other I/O error related reasons too.
> (If not, the JavaDoc needs to be clarified.)
If the javadoc isn't clear then we can improve it. In this case it says
it returns false "if the file does not exist or its existence cannot be
determined".
>
> I don't feel like notExists is convenient enough to justify its
> existence. Presumably if one cannot tell if a file exists, one cannot
> tell if it doesn't exist either. Both are SecurityExceptions.
If we can't determine the file exists then the exists() method will
return false. You cannot interpret this to mean the file does not exist.
This is the reason for the notExists method. It's a trivial convenience
method to allow you take action when it is confirmed that a file does
not exit.
> Can you imagine the bloat if every isXXX() method in Java was matched
> by a isNotXXX() method? Let's not start down this path. A single
> exists() method is fully sufficient.
>
The existence check differs from the other access checks and a boolean
result is insufficient. There is no plan to add complement variants of
the other methods.
-Alan.
More information about the nio-discuss
mailing list