`

如何批量去掉Java的注释(用正则表达式)

    博客分类:
  • 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();  

    }  

 

}  


分享到:
评论

相关推荐

    java代码验证日期格式正则表达式(包含闰年验证)带注释

    /** * @param 日期验证,验证的格式有: * "yyyyMM","yyyyMMdd","yyyyMMdd HH:mm:ss", * "yyyy-MM","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss" * "yyyy.MM","yyyy.MM.dd","yyyy.MM.dd HH:mm:ss" * "yyyy/MM","yyyy/MM...

    javascript匹配js中注释的正则表达式代码

    有时候我们需要将js的注释去掉,减少代码中的冗余,有时候注释太多导致页面体积大。 注释图示如下: 一.匹配多行注释正则表达式: /(?:^|\n|\r)\s*\/\*[\s\S]*?\*\/\s*(?:\r|\n|$)/g 二.单行注释正则表达式: /(?:^|...

    Python基础入门知识之正则表达式学习 正则表达式30分钟入门教程 共21页.pdf

    三、 正则表达式到底是什么东西? 3 四、 入门 4 五、 测试正则表达式 6 六、 元字符 7 七、 字符转义 9 八、 重复 9 九、 字符类 9 十、 分枝条件 10 十一、 分组 11 十二、 反义 12 十三、 后向引用 12 十四、 零...

    精通正则表达式~~~

    用动态正则表达式结构匹配嵌套结构... 328 使用内嵌代码结构... 331 在内嵌代码结构中使用local函数... 335 关于内嵌代码和my变量的忠告... 338 使用内嵌代码匹配嵌套结构... 340 正则文字重载... 341 正则...

    正则表达式30分钟入门

    学习正则表达式快速入门的法宝。 语言深入浅出,举例实用、典型。 1、本文目标 2、如何使用本教程 3、正则表达式到底是什么东西? 4、入门 5、测试正则表达式 6、元字符 7、字符转义 8、重复 9、字符类 10、分枝条件...

    正则表达式 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。

    30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符...

    sql_server 正则表达式

    收集了大部分的正则表达式的使用方法,请赶紧下载哦!!!

    正则表达式实例(汇总)

    详细的解释了js中的正则表达式,代码加注释都有!

    java正则表达式范例程序

    java正则表达式范例,有详细的注释,最基本的java正则表达式总结

    正则表达式30分钟入门教程

    3. 正则表达式到底是什么东西? 4. 入门 5. 测试正则表达式 6. 元字符 7. 字符转义 8. 重复 9. 字符类 10. 分枝条件 11. 反义 12. 分组 13. 后向引用 14. 零宽断言 15. 负向零宽断言 16. 注释 17. ...

    正则表达式三十分钟入门教程

    比较全的正则表达式 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 ...

    深入浅出正则表达式

    1. 什么是正则表达式 2 2. 不同的正则表达式引擎 2 3. 文字符号 2 4. 正则表达式引擎的内部工作机制 3 5. 字符集 4 6. 使用?*或+ 进行重复 5 7. 使用“.”匹配几乎任意字符 7 ...16. 为正则表达式添加注释 17

    正则表达式学习教程

    清除格式 文本格式约定:专业术语 元字符/语法格式 正则表达式 正则表达式中的一部分(用于分析) 对其进行匹配的源字符串 对正则表达式或其中一部分的说明 隐藏边注 本文右边有一些注释,主要是用来提供一些相关信息...

    正则表达式计数代码行数

    利用正则表达式计数代码中普通代码的行数,注释的行数,空白行的行数

    正则表达式校验方法类

    目前最全最常用的正则表达式校验都封装在这了,有完整的中文注释

    正则表达式经典实例

    每个程序员都会遇到需要使用正则表达式的情况,但是要用好正则表达式却并不容易。本书提供了100多个实例,以帮助读者使用正则表达式处理数据和文本。即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的...

    C++ 正则文法定义-正则表达式-NFA-DFA-最小化DFA-字符串匹配DFA

    内容主要包括:自定义正则文法(在ProgramManager类中自定义),根据正则文法和输入的正则表达式构建NFA,NFA自动构建DFA,DFA最小化,DFA匹配字符串。其中含有大量的中文注释,并提供了测试方法。本人还是学生,...

    正则表达式的词法分析程序

    C++语言包含了几种类型的记号:标识符,关键字,数(包括整数、浮点数),字符串、注释、特殊符号(分界符)和运算符号等。 (2)打开一个C++源文件,打印出所有以上的记号。 (3)要求应用程序应为Windows界面。 ...

Global site tag (gtag.js) - Google Analytics