JavaSE-只能搜索文本文件的文件搜索器(娱乐)

本文介绍了一个使用Java编写的简单程序,该程序能够递归地搜索指定目录下的所有文本文件(.txt),并利用GBK编码读取文件内容。通过输入文件夹路径及关键字,程序可以找出包含指定字符串的所有文件。

        主要使用InputStream.read()来读取文本文件中的数据,编码格式为GBK。

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class Main{
    public static void main(String[] args)throws Exception{
        File file = new File(args[0]);
        String Find_File_Name = new String(args[1]);
        AllFiles(file,Find_File_Name);
    }

    public static void AllFiles(File file,String Find_File_Name)throws Exception{
        if(file.isFile() && file.exists() && file.getName().endsWith(".txt")) {//只能找到文本文件
            if (file.getName().contains(Find_File_Name)) {//如果文件名中有和要查找的名字相同的子串
                System.out.println(file);
            }else {
                InputStream inputStream = new FileInputStream(file);
                byte[] data = new byte[102400];
                int ret = inputStream.read(data);//读取文本文件内容
                String message = new String(data, "gbk");
                if (message.contains(Find_File_Name)) {//如果文本中由相同的内容
                    System.out.println(file);
                }
            }
        }
        else {
            if(file.listFiles() == null){
                return;
            }
            new Thread(()-> {
                    File[] files = file.listFiles();
                    for(File file1 : files){
                        try {
                            AllFiles(file1, Find_File_Name);
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
            }).start();
        }
    }
}
        纯属娱乐。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值