首页 > 编程语言 > 详细

Java制作文件内容检索工具

时间:2021-02-26 14:28:26      阅读:25      评论:0      收藏:0      [点我收藏+]

需求:

  该工具能搜索文件夹目录下的所有txt文件的内容,将内容中还有特定词语的文件检索出来

文件夹目录和文件内容如图所示:

  技术分享图片

 

 

 文件内容如下表所示:

2021-02-01.txt 今天我吃了一个苹果
2021-02-05.txt 我今天吃了一个梨
2021-02-07.txt 今天我去动物园玩了
2021-02-08.txt 我今天明白了一个人生道理
2021-02-13.txt 我今天晚饭后吃了一个苹果
2021-02-20.txt 我今天去北京吃了一个梨,太好吃了

 

首先需要设计一个方法,传入文件对象和需要检索的字符串,返回一个是否包含的布尔值

这里如果使用String类的contains方法,需要将整个文件都读入到内存中,浪费系统资源,效率不高。

所以这里考虑采用从前往后边读取边判断的算法:

 

public static boolean searchFile(File f,String keyword) throws IOException {
        FileReader fr = null;
        try {
            fr = new FileReader(f);
        } catch (FileNotFoundException e) {
            System.out.println("文件不存在!");
            return false;
        }
        int c;
        int index = 0;
        while((c=fr.read())!=-1) {
            
            char ch = (char)c;
            
            if(ch == keyword.charAt(index)) {
                
                if(index==(keyword.length()-1)) {
                    fr.close();
                    return true;
                }else {
                    index++;
                    continue;
                }
            }else {
                index=0;
                continue;
            }
        }
        fr.close();
        return false;
    }

利用递归遍历该目录下所有的子文件夹:

public static void recursion(File f,String keyword) throws IOException {
        for(File ff:f.listFiles()) {
            if(ff.isDirectory()) {
                recursion(ff,keyword);
            }else {
                if(searchFile(ff,keyword)) {
                    System.out.println(ff);
                }
            }
        }
    }

运行效果:

技术分享图片

 

 技术分享图片

 

Java制作文件内容检索工具

原文:https://www.cnblogs.com/lucascube/p/14451583.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!