package com.xuanwo.api.entity.DTO;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Test {
//创建静态的List用于存储文件中的数据
private static List dirList = new ArrayList<>();
public static void main(String[] args) throws IOException {
//File file = new File("F:\\JavaCloud\\xw_vip\\app-api-system\\src\\main\\java\\com\\xuanwo\\api\\entity\\DTO");
//给一个文件路径
File file = new File("F:\\JavaCloud\\JavaColed\\admin-api-system\\src\\main\\java\\admin\\api\\system\\Entity\\DTO");
//调用方法返回文件绝对路径的集合
List strings = showDir(file);
//遍历
for (String string : strings) {
BufferedReader br = new BufferedReader(new FileReader(string));
//创建一个空集合用于存放文件中的内容
ArrayList list = new ArrayList<>();
String str = null;
//读取文件
//BufferedReader读取文件是一行一行的读取,读取出来将数据添加到List中,List存储是有序的,所以不会乱序
while ((str = br.readLine()) != null) {
//"}"这个符号代表文件结尾了
if (str.equals("}")) {
//文件结尾之前把你要添加的文件内容添加到List中
list.add(" @ApiModelProperty(name = \"versions\", value = \"版本\")");
list.add(" private String versions;");
list.add(" @ApiModelProperty(name = \"phoneType\", value = \"手机型号\")");
list.add(" private String phoneType;");
list.add(str);
} else {
//不是结尾就直接添加到List中
list.add(str);
}
}
br.close();//关闭流
//创建字符打印流,将当前遍历的文件绝对路径传递给他
PrintWriter pw = new PrintWriter(string);
//遍历List
for (String s : list) {
//一行一行的将数据重新写进去就完事了
pw.println(s);
}
pw.close();//关闭流
}
}
//递归方法根据一个目录 查询出他下面的所有子文件 封装成List集合
public static List showDir(File dir) {
File[] files = dir.listFiles();
for (File file : files) {
//判断是文件就继续递归调用,将当前遍历的文件目录当做参数
if (file.isDirectory()) {
showDir(file);
} else {
//否则就将文件的绝对路径转成字符串封装在List中
String s = String.valueOf(file);
dirList.add(s);
}
}
//将数据返回
return dirList;
}
}