/**
* 扫描包下的所有包含某个字符串的类
*
* @author admin
*/
public class ClassUtil {
private static Set<String> result = new LinkedHashSet();
public static void main(String[] args) {
getClassName(new File("C:\\Users\\bitech\\Desktop\\angular\\依赖整理\\后端\\reco10.policy-dev\\reco-special-model"), "Entity");
for (String fileName : result) {
char[] chars = fileName.toCharArray();
for (int i = 0; i < chars.length; i++) {
//第一个大写字母转为小写
if (Character.isUpperCase(chars[i]) && 0 == i) {
chars[i] = Character.toLowerCase(chars[i]);
} else if (Character.isUpperCase(chars[i]) && 0 != i) {
chars[i] = Character.toLowerCase(chars[i]);
//数组扩容
chars = Arrays.copyOf(chars, chars.length + 1);
for (int j = chars.length - 1; j > i; j--) {
chars[j] = chars[j - 1];
}
chars[i] = '_';
}
}
System.out.println(String.valueOf(chars));
}
}
public static void getClassName(File file, String packageName) {
if (!file.exists()) {
return;
}
//是目录就递归处理
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
getClassName(f, packageName);
}
//是.java结尾的文件
} else if (file.getName().endsWith(".java")) {
try {
List<String> strings = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8);
for (String s : strings) {
if (s.contains(packageName)) {
String fileName = file.getName();
result.add(fileName.substring(0, fileName.lastIndexOf(".")));
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
JAVA读取目录下所有包含某个字符串的文件名(循环读取)
最新推荐文章于 2023-03-04 14:18:51 发布