java - 加速文件系统访问?

标签 java filesystems

我的应用程序扫描文件系统的一部分,我的用户报告说他们在扫描网络驱动器时速度非常慢。测试我的代码,我确定了瓶颈:方法 File.isFile()File.isDirectory()File.isHidden() ,它们都在调用 fs.getBooleanAttributes(File f)。此方法在 Windows 网络驱动器上似乎非常慢。我怎样才能提高性能?我能否以某种方式避免调用此方法?

最佳答案

防御性代码通常会调用那些 isXYZ() 方法,这通常是一种很好的做法。但是,正如您所发现的,有时性能很差。

另一种方法是假设该文件是一个文件,它存在、可见、可读等,然后尝试读取它。如果不是那些东西,你会得到一个异常,你可以捕获它,然后进行检查以找出到底出了什么问题。这样,您就可以针对常见情况(即一切正常)进行优化,并且仅在出现问题时才执行缓慢的操作。

关于java - 加速文件系统访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929814/

相关文章:

apache-spark - 提供者 org.apache.hadoop.fs.s3a.S3AFileSystem 无法实例化

java - 用 Java Applet 制作一条蛇

java - 使用相同的表达式在 ArrayList 中添加新的或重写?

java - Dropwizard 日志记录 : add new appender for a particular logger

java - 为 JerseyTest 配置带有 SSL 的 JettyTestContainer

linux - 安装 s3 存储桶后无法查看文件夹详细信息

c++ - 写入 SSD 上仅附加文件的最佳方式

java - 在 Jersey 中使用@Context HttpServletRequest 和@FormDataParam 进行多文件上传

.net - 为什么 FileSystemWatcher 在将文件复制到目录时会创建多个更改事件

iphone - Obj-C(iPhone)中的读写文件锁定