首页 > 其他分享 >循环读取文件夹,查找文件内容

循环读取文件夹,查找文件内容

时间:2022-11-10 17:03:22浏览次数:37  
标签:文件 file 查找文件 String 文件夹 File println new 读取

 

 

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;
    }
}

 

标签:文件,file,查找文件,String,文件夹,File,println,new,读取
From: https://www.cnblogs.com/ychun/p/16877644.html

相关文章