Java 根据文件目录批量替换替换文件格式

536 阅读1分钟

通过遍历文件夹 以及文件夹下面的文件,来批量替换件文件内容

主要支持文本格式 csv,txt 等

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.*;

public class FileUtils {
    public static void main(String  args[]){
//        formatFile("D:\\home\\fomat\\quanlianghuankuanjihua");
        formatFile(" D:\\home\\fomat\\quanliangshihuan");

    }

    public static String formatFile(String path) {
        File file = new File(path);
        String filePath = "";
        FileOutputStream fos = null;
        BufferedReader reader = null;
        // 如果这个路径是文件夹
        if (file.isDirectory()) {
            // 获取路径下的所有文件
            File[] files = file.listFiles();
            for (int i = 0; i < files.length; i++) {
                // 如果还是文件夹 递归获取里面的文件 文件夹
                if (files[i].isDirectory()) {
                    System.out.println("目录:" + files[i].getPath());
                    filePath = formatFile(files[i].getPath());
                } else {
                    System.out.println("文件:" + files[i].getPath());
                    filePath = files[i].getPath();
                }
                try {
                    //读取文件
                    reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8"));
                    //新写的文件
                    String outFileName = files[i].getPath().split("\\.")[0].concat("tmp.").concat("csv");
                    System.out.println("outFileName:" + outFileName);
                    fos = new FileOutputStream(outFileName);
                    //逐行读取
                    while (true) {
                        String str = reader.readLine();
                        if(StringUtils.isBlank(str)){
                            break;
                        }
                        //这是是文件替换的类容可以自己确定
                        str = str.replace("\"", "");
                        str = str.replace("/", "-");
                        str = str.replace("GSP", "");
                        //写文件
                        fos.write(str.concat("\n").getBytes("UTF-8"));
                    }
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    IOUtils.closeQuietly(reader);
                    IOUtils.closeQuietly(fos);
                }
            }

        } else {
            System.out.println("文件:" + file.getPath());
        }
        return filePath;
    }


}