1删除某个目录下的注释 https://github.com/javaparser/javaparser
1引入jar
<dependency>
<groupId>com.github.javaparser</groupId>
<artifactId>javaparser-symbol-solver-core</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.5.1</version>
</dependency>
2例子demo应用java
package com.paas.bocloud;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import com.github.javaparser.JavaParser;
import com.github.javaparser.ParseResult;
import com.github.javaparser.ParserConfiguration;
import com.github.javaparser.ast.CompilationUnit;
public class Test {
private static boolean quoteFlag = false, lineStarFlag = false;
public static void main(String[] args) {
fileRecursion(new File("C:\\Users\\WANGYJ.JD\\Desktop\\soft\\work-dhpass\\dh-pass-code"));
}
public static void fileRecursion(File file) {
if (file != null) {
if (file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; files != null && i < files.length; i++) {
fileRecursion(files[i]);
}
} else {
if (file.getName() != null && file.getName().endsWith(".java")) {
if (removeComments(file, file)) {
System.out.println(file.getName() + ", remove:" + true);
} else {
System.out.println(file.getName() + ", remove:" + false);
}
}
}
}
}
public static boolean removeComments(File in, File out) {
ParseResult<CompilationUnit> parse = null;
try {
FileInputStream fi = new FileInputStream(in);
ParserConfiguration pc = new ParserConfiguration();
pc.setAttributeComments(false);
JavaParser javaParser = new JavaParser(pc);
parse = javaParser.parse(fi);
} catch (Exception e) {
System.out.println("------------------------error--------------------");
}
return write(out, parse.getResult().get().toString());
}
public static BufferedReader read(File file) {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return br;
}
public static boolean write(File file, String content) {
FileWriter fw = null;
try {
fw = new FileWriter(file);
fw.write(content);
fw.flush();
} catch (IOException e) {
e.printStackTrace();
return false;
} finally {
try {
if (fw != null)
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return true;
}
public static StringBuffer analysisLine(String code) {
StringBuffer sb = new StringBuffer();
if (code == null)
return sb;
for (int i = 0; i < code.length(); i++) {
if (lineStarFlag) {
if (i + 1 < code.length() && code.charAt(i) == '*' && code.charAt(i + 1) == '/') {
lineStarFlag = false;
i++;
continue;
}
} else if (!quoteFlag) {
if (code.charAt(i) == '"') {
sb.append(code.charAt(i));
quoteFlag = true;
continue;
} else {
if (i + 1 < code.length() && code.charAt(i) == '/') {
if (code.charAt(i + 1) == '*') {
lineStarFlag = true;
i++;
continue;
} else if (code.charAt(i + 1) == '/') {
i = code.length();
} else {
sb.append(code.charAt(i));
}
} else {
sb.append(code.charAt(i));
}
}
} else {
if (code.charAt(i) == '"' && code.charAt(i - 1) != '\\') {
sb.append(code.charAt(i));
quoteFlag = false;
} else {
sb.append(code.charAt(i));
}
}
}
sb.append("\n");
return sb;
}
}