package com.system.api; import java.io.*; public class JavaBatchSub { public static void main(String[] args) throws IOException { String path = "D:\\ryspringcloud"; //要遍历的路径 File file = new File(path); //获取其file对象 func(file); } public static void batchSub(String path) throws IOException{ //原有的内容 String srcStr = "@author"; //要替换的内容 String replaceStr = "@author sgy"; // 读 File file = new File(path); FileReader in = new FileReader(file); BufferedReader bufIn = new BufferedReader(in); // 内存流, 作为临时流 CharArrayWriter tempStream = new CharArrayWriter(); // 替换 String line = null; while ( (line = bufIn.readLine()) != null) { // 替换每行中, 符合条件的字符串 line = line.replaceAll(srcStr, replaceStr); // 将该行写入内存 tempStream.write(line); // 添加换行符 tempStream.append(System.getProperty("line.separator")); } // 关闭 输入流 bufIn.close(); // 将内存中的流 写入 文件 FileWriter out = new FileWriter(file); tempStream.writeTo(out); out.close(); // System.out.println("====path:"+path); } public static void func(File file) throws IOException{ File[] fs = file.listFiles(); String [] files = new String[fs.length];//创建一个存99个字符川的数组 int count = 0; for(int i=0;i<fs.length;i++){ System.out.println("name:"+fs[i].getName()); if(fs[i].isDirectory()) { //若是目录,则递归打印该目录下的文件 func(fs[i]); }else if (fs[i].isFile()){ //若是文件,直接打印 if(fs[i].getAbsolutePath().indexOf(".java")!=-1){ files[count] = fs[i].getAbsolutePath();//把file类型的数组转化成Sting类型的数组 //System.out.println("路径:"+fs[i].getAbsolutePath()); count++; } } } for (int i=0;i<files.length;i++){ if (files[i] != null ){ //最后一行是有一个null?? batchSub(files[i]); } } // return files; } }
递归修改JAVA文件中的代码
最新推荐文章于 2023-06-08 22:28:14 发布