怎样批量去掉java文件中的注释

现在接手一别人写的代码,这哥们估计有强迫症,在每一行前面都加了类似"/* 145 */"的注释,注释里面只写行号,而且代码本身缩进混乱,我ctrl+shift+f只能解决缩进,但注释会跟着缩进,显得更蛋疼,有没有什么方法能批量去掉这些注释呢

批量去掉Java文件中的注释,可以使用正则表达式进行批量操作,代码如下:

import java.io.BufferedReader;  
import 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();  
    }  
 
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-26
import java.io.BufferedReader;
import 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();
}

}本回答被网友采纳
第2个回答  2019-05-25
踱步狼注释清理StrollingWolf,不到100KB, windows下最好用的免费代码注释批量清理工具, 一键批量清理,轻松搞定。
第3个回答  2014-08-26
其定位器的前雾灯其定位器定情物
相似回答