小编EiZ*_*eLL的帖子

检查java中是否存在文件的最快方法

目前我的任务是制作一个可以使用java检查链接是否正确的工具.该链接来自Jericho HTML Parser,我的工作只是检查文件是否存在/链接是否正确.那部分已经完成,困难的部分是优化它,因为我的代码运行(我不得不说)相当缓慢,每次运行65ms

public static String checkRelativeURL(String originalFileLoc, String relativeLoc){
        StringBuilder sb = new StringBuilder();
        String absolute = Common.relativeToAbsolute(originalFileLoc, relativeLoc); //built in function to replace the link from relative link to absolute path
        sb.append(absolute);
        sb.append("\t");
        try {
            Path path = Paths.get(absolute);
            sb.append(Files.exists(path));
        }catch (InvalidPathException | NullPointerException ex) {
            sb.append(false);
        }
        sb.append("\t");
        return sb.toString();
    }
Run Code Online (Sandbox Code Playgroud)

在这条线上花了65毫秒

Path path = Paths.get(absolute);
sb.append(Files.exists(path));
Run Code Online (Sandbox Code Playgroud)

我试过用

File file = new File(absolute);
sb.append(file.isFile());
Run Code Online (Sandbox Code Playgroud)

它仍然在65~100ms左右运行.

那么有没有其他更快的方法来检查文件是否存在除此之外?

由于我正在处理超过70k的html文件,每毫秒计数,谢谢:(

编辑:

我尝试将所有文​​件列入一些List,但它并没有真正帮助,因为它只需要超过20分钟就可以列出所有文件....

我用来列出所有文件的代码

static public void listFiles2(String filepath){
        Path path …
Run Code Online (Sandbox Code Playgroud)

java file-io

5
推荐指数
1
解决办法
1322
查看次数

标签 统计

file-io ×1

java ×1