package test1;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author yxchun
* @date 2022/11/10 15:43
* @Des
**/
public class TestFile {
public static List<String> all_filePath = new ArrayList<>();
public static void main(String[] args) throws Exception {
String dir="C:\\Users\\jiao\\Desktop\\新建文件夹 (2)\\Log - Copy";
String targetData = "TB001";
File file = new File(dir);
System.out.println("read: "+file.getName());
// // 包含了文件名
// System.out.println(file.getAbsolutePath());
if(!file.exists()){
System.out.println("文件不存在");
}else{
// 读物文件夹中的所有文件,并将文件放到list中
readParentFile(file.getAbsolutePath());
//遍历list集合
for (String path :all_filePath){
File afile = new File(path);
// 查找文件内容
System.out.println("目前文件:"+readFile(afile,targetData));
}
}
}
public static void readParentFile(String filePath) throws Exception {
File file = new File(filePath);
//存储文件路径
File[] filePaths = file.listFiles();
// 获取指定文件路径下文件内容
for (int i = 0; i < filePaths.length; i++) {
File readFile = filePaths[i];
// 判断是否为文件
if (readFile.isFile()) {
//将文件的绝对路径添加进list集合
all_filePath.add(readFile.getAbsolutePath());
} else {
//继续读物文件夹
readParentFile(readFile.getAbsolutePath());
}
}
}
// 读取文件,查找内容
public static String readFile(File path,String targetData) throws Exception {
// System.out.println("read: "+path.getName());
BufferedReader fis = new BufferedReader(new FileReader(path));
String str= "";
//存在目标数据的文件名
String targetFileName="";
while ((str=fis.readLine())!=null){
// 读取文件
if(str.contains(targetData)){
// System.out.println(str);
targetFileName = path.getAbsolutePath();
//读到文件后终止读取
break;
}else{
// //写入文件
// write.write(str);
// write.newLine();
// write.flush();
}
}
//关闭流
fis.close();
return targetFileName;
}
}