JAVA查搜索文件内容

简介: JAVA查搜索文件内容

上周突然遇到了个要查找历史sql的中是否包含某个字段的问题,Everting虽然可以查找某个后缀的文件,可是并不能搜索文件内容,所以就花费一点功夫自己写一个了。使用起来还是非常方便


1.单文件查找内容


2.单文件夹下读取所有文件,并查找内容


3.多层嵌套文件夹下查找文件内容


4.添加字符串匹配、忽略大小写


5.后续感觉可以添加多种搜索条件,如日期、创建人……,组合搜索功能。


6.打成exe形式的可执行软件


作用:可以快速查找某个盘内所有文件的文件内容,匹配我们所要查找的字符串

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/**
 * 递归便利某个盘内文件的内容
 * @author 25050
 *
 */
public class Test {
    private static String FileName = "C:\\Users\\Eric\\Desktop\\test";
    private static String FileEnd = "txt";// 文件名称后缀 txt sql bat
    private static String SearchStr = "aaa";//要查找的字符串
    private static Boolean IngronCase = true;// 是否区分大小写
    private static List<String> pathlist = new ArrayList<>();
    public static void main(String[] args) {
        List<String> resultList = new ArrayList<>();
        int count = 0;
        pathlist = getFileList(FileName);
        for(int k=0;k<pathlist.size();k++) {
            File file = new File(pathlist.get(k));
            if (file.exists()) {
                String s = file.toString();
                count++;
                System.out.println("正在读取第" + count + "个文件" + s);
                /* 读取数据 */
                try {
                    BufferedReader br = new BufferedReader(
                            new InputStreamReader(new FileInputStream(new File(s)), "UTF-8"));
                    String lineTxt = null;
                    while ((lineTxt = br.readLine()) != null) {
                        if (IngronCase) {
                            if (lineTxt.contains(SearchStr)) {
                                resultList.add("在【" + s + "】文件中找到了" + SearchStr );
                                break;
                            }
                        } else {
                            if (lineTxt.toLowerCase().contains(SearchStr.toLowerCase())) {
                                resultList.add("在【" + s + "】文件中找到了" + SearchStr );
                                break;
                            }
                        }
                    }
                    br.close();
                } catch (Exception e) {
                    // TODO: handle exception
                    System.err.println("读取文件错误 :" + e);
                }
            }
        }
        System.out.println("===============输出结果===============");
        // 输出结果
        for (int i = 0; i < resultList.size(); i++) {
            System.out.println(resultList.get(i));
        }
    }
    public static List<String> getFileList(String strPath) {
        File dir = new File(strPath);
        File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组
        if (files != null) {
            for (int i = 0; i < files.length; i++) {
                String fileName = files[i].getName();
                if (files[i].isDirectory()) { // 判断是文件还是文件夹
                    getFileList(files[i].getAbsolutePath()); // 获取文件绝对路径
                } else if (fileName.endsWith("."+FileEnd)) { // 判断文件名是否以.avi结尾
                    String strFileName = files[i].getAbsolutePath();
                    pathlist.add(strFileName);
                } else {
                    continue;
                }
            }
        }
        return pathlist;
    }
}


目录
相关文章
|
27天前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
66 9
|
28天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
65 2
|
7天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
63 34
|
24天前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
38 3
|
27天前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
1月前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
53 2
|
1月前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
44 4
|
1月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
43 4
|
1月前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
40 5
|
1月前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
70 5