jac*_*646 5 java java-io java.nio.file
我无法想到java.io.File.exists()Java 7中该方法或其等价物的实际用例java.nio.file.Files.exists(Path).看来,isFile()或isDirectory()会在所有情况下最好(或canRead(),canWrite()等等).
例如,在如何检查Java中是否存在文件?,第二个答案指出,接受的答案似乎很愚蠢.
任何人都可以给出一个例子,知道事物是否存在是有用的,而不知道事物是文件还是目录?
编辑:我明白了什么File.exists().我的问题是,该功能何时能帮助某人?我正在寻找一个例子," File.exists()在_ _ _ _ _ _时使用,因为在这种情况下既不添加File.isFile()也不File.isDirectory()添加任何值."
回想起来,我认为我在这里的困惑是关于File类的JavaDoc中两个看似矛盾的陈述.第一句将班级定义为,
文件和目录路径名的抽象表示.
这听起来像是一个明显的二分法; 但进一步说,医生反驳,
此类的实例可能表示也可能不表示实际的文件系统对象,例如文件或目录.
我认为第三个文件系统对象的例子在文档中会有很大的帮助; 但是这个类别似乎甚至缺少一个名称,导致JavaDoc对Files类的尴尬措辞:静态方法的集合,
对文件,目录或其他类型的文件进行操作.
在接受的答案中,@ korral将这些其他类型称为"特殊文件".这似乎对我很敏感.他们是如此特别,我不知道他们存在.
回答@ jaco0646的最后一个问题:
使用File.exists() 特殊的文件打交道时喜欢命名管道,插座或设备文件.
这些都不是普通的文件,也没有目录,也没有符号链接这样既File.isFile()和File.isDirectory()返回false时File.exists()将返回true.例如/dev/null(在兼容Unix的操作系统上)是一个设备文件.
从理论上讲,处理大量文件时可能会出现性能差异.这还取决于文件系统,JVM实现细节,操作系统等.
例如.在Android File.exists()上使用/ use时使用access()系统调用实现.在这种情况下,处理输出在用户空间中需要更多逻辑.File.isFile()File.isDirectory()stat()stat()access()
| 归档时间: |
|
| 查看次数: |
10492 次 |
| 最近记录: |