批量去掉Java文件中的注释,可以使用正则表达式进行批量 *** 作,代码如下:
import java.io.BufferedReaderimport java.io.BufferedWriter
import java.io.File
import java.io.FileInputStream
import java.io.FileOutputStream
import java.io.IOException
import java.io.InputStream
import java.io.InputStreamReader
import java.io.OutputStream
import java.io.OutputStreamWriter
public class CopyJava {
public static void main(String[] args) throws IOException {
copy("e:/src", "e:/desc") // 这里写好源文件夹和目的文件夹
}
private static void copy(String srcPath, String descPath) throws IOException {
copy(new File(srcPath), new File(descPath))
}
private static void copy(File srcFile, File descFile) throws IOException {
if (srcFile.isFile()) { // 文件
File parent = descFile.getParentFile()
if (!parent.exists()) {
parent.mkdirs() // 创建文件夹
}
if (srcFile.getName().endsWith(".java")) {
copyJava(srcFile, descFile)
} else {
copyFile(srcFile, descFile)
}
} else { // 文件夹
for (File file : srcFile.listFiles()) {
// 相对路径
String srcPath = file.getAbsolutePath().substring(srcFile.getAbsolutePath().length())
copy(file, new File(descFile.getAbsolutePath() + srcPath))
}
}
}
private static void copyJava(File srcFile, File descFile) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(descFile)))
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(srcFile)))
String line
while ((line = br.readLine()) != null) {
bw.write(line.replaceFirst("/\\* \\*/", "")) // 注意这里,如果不行,要适当修改
bw.write("\n")
}
br.close()
bw.close()
}
private static void copyFile(File srcFile, File descFile) throws IOException {
OutputStream output = new FileOutputStream(descFile)
InputStream input = new FileInputStream(srcFile)
byte[] buffer = new byte[1024 * 4]
int n = 0
while ((n = input.read(buffer)) != -1) {
output.write(buffer, 0, n)
}
input.close()
output.close()
}
}
选中代码 ctrl+/ 是每一行代码前面加注释 //ctrl+shift+/ 是/* */注释
取消是同样的 *** 作,已有注释的就会取消没有就会加注释(前提是你已经设置了快捷键,我说的这些是默认的快捷键eclipse中的)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)