批量删除代码注释

来源:互联网 发布:手机编程百度专用皮肤 编辑:程序博客网 时间:2024/05/22 11:34

最近项目交接,公司业务被被抢了!恼火!!而且还是使用及其下流的手段抢了业务,虽然我不是老板,但是我也是公司一员,删了全部注释,让你们接!!!

此代码并不完善,不能排除一些特殊情况。删了不该删的代码,手工补回来就好了。

public class test {    private static int count = 0;    /**     * 删除文件中的各种注释,包含//、/* * /等     * @param charset 文件编码     * @param file 文件     */    public static void clearComment(File file, String charset) {        try {            //递归处理文件夹            if (!file.exists()) {                return;            }            if (file.isDirectory()) {                File[] files = file.listFiles();                for (File f : files) {                    clearComment(f, charset); //递归调用                }                return;            } else if (!file.getName().endsWith(".java")) {                //非java文件直接返回                return;            }            System.out.println("-----开始处理文件:" + file.getAbsolutePath());            //根据对应的编码格式读取            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset));            StringBuffer content = new StringBuffer();            String tmp = null;            while ((tmp = reader.readLine()) != null) {                content.append(tmp);                content.append("\n");            }            String target = content.toString();            //String s = target.replaceAll("\\/\\/[^\\n]*|\\/\\*([^\\*^\\/]*|[\\*^\\/*]*|[^\\**\\/]*)*\\*\\/", ""); //本段正则摘自网上,有一种情况无法满足(/* ...**/),略作修改            String s = target.replaceAll("\\/\\/[^\\n]*|\\/\\*([^\\*^\\/]*|[\\*^\\/*]*|[^\\**\\/]*)*\\*+\\/", "");            //System.out.println(s);            //使用对应的编码格式输出            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), charset));            out.write(s);            out.flush();            out.close();            count++;            System.out.println("-----文件处理完成---" + count);        } catch (Exception e) {            e.printStackTrace();        }    }    public static void clearComment(String filePath, String charset) {        clearComment(new File(filePath), charset);    }    public static void clearComment(String filePath) {        clearComment(new File(filePath), "UTF-8");    }    public static void clearComment(File file) {        clearComment(file, "UTF-8");    }    public static void main(String[] args) {        clearComment("D:\\gzlhxc\\lhxc_xg\\src"); //删除目录下所有java文件注释        //删除某个具体文件的注释        //clearComment("D:\\proj\\scm\\action\\AbcdefgAction.java");    }}


0 0
原创粉丝点击