您的位置:首页 > 编程语言 > Java开发

java File中File.exists() 与 File.isFile()区别?

2016-12-09 18:05 471 查看
这种区别一般在Linux环境中比较明显。

比如在Linux环境中
/dev/null
这个文件是个特殊文件。

使用
File.isFile()
方法返回结果是
false


使用
File.exists()
方法返回结果是
true


也就是说如果是我们常见的普通文件,两者是没多少区别的!

区别只在于特殊文件中。

Use File.exists() when dealing with special files like named pipes, sockets or device files.

Those are not regular files nor directories nor symlinks so both File.isFile() and File.isDirectory() will return false while File.exists() will return true. For example /dev/null (on Unix compatible OSes) is a device file.

Theoretically there may be performance differences visible when processing large amounts of files. This depends also on filesystem, JVM implementation details, OS etc.

Eg. on Android File.exists() is implemented using access() system call while File.isFile()/File.isDirectory() use stat(). In this case processing stat() output requires more logic in userspace than access().


http://stackoverflow.com/a/38620520/6952713
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: