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