Java.io.File.canRead()vs Java.nio.Files.isReadable()vs Java.io.FilePermission

时间:2015-01-18 18:51:57

标签: java file file-io io nio

设置或检查文件是否可读/可写,这三者有何不同?我在这里的条款之间迷失了......

我需要具体的是以可读模式打开文件?哪一个选择?如果答案是nio.Files我正在使用不包含它的JVM 1.6,那么我怎么能克服呢?

2 个答案:

答案 0 :(得分:1)

File.canRead在其实现中使用FilePermission。 Files.isReadable是在JDK 1.7中引入的Java NIO中,它具有完全不同的实现,但应该给出相同的结果。

如果您只需要检查您是否有权从文件中读取文件,请使用File.canRead,但如果您想使用它,则只需打开它并处理IOException(如果权限被拒绝或发生其他一些错误)

答案 1 :(得分:0)

FilePermission Java 安全管理器的一部分。如果您不使用它,请不要担心。另外两个还测试了操作系统授予的权限,这是完全不同的事情。

在99%的情况下,您不需要其中任何一种:只需尝试打开文件并在发生时处理IOExceptions。这样就可以避免计时窗口问题。