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

        主要使用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();
        }
    }
}
        纯属娱乐。。。

猜你喜欢

转载自blog.csdn.net/qq_38449518/article/details/80286435
今日推荐