删除Java代码中的所有注释
2017-09-11 17:31
393 查看
文章来源:http://blog.csdn.net/fullstack/article/details/22688777package tools;
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;
/** * 删除Java代码中的注释 * * @author Alive * @build 2010-12-23 */public class DeleteComments {
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:\\eclipse3.3\\workspace\\Sanguosha"); //删除目录下所有java文件注释 //删除某个具体文件的注释 //clearComment("D:\\proj\\scm\\action\\AbcdefgAction.java"); }
}
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;
/** * 删除Java代码中的注释 * * @author Alive * @build 2010-12-23 */public class DeleteComments {
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:\\eclipse3.3\\workspace\\Sanguosha"); //删除目录下所有java文件注释 //删除某个具体文件的注释 //clearComment("D:\\proj\\scm\\action\\AbcdefgAction.java"); }
}
相关文章推荐
- 删除C语言程序中所有的注释语句,代码实现
- 状态机编程思想(2):删除代码注释(目前支持C/C++和Java)
- 利用正则表达式统计某个某个文件夹下所有java文件的 空格行数、注释行数、和代码行数
- 用正则删除vb代码中所有注释的方法
- Java 删除c/c++/java代码注释的代码片段
- 状态机编程思想(2):删除代码注释(目前支持C/C++和Java)
- JAVA实现将磁盘中所有空文件夹进行删除的代码
- C语言删除文件夹下所有代码的注释for Mac
- Eclipse删除代码中所有注释及空格
- 第7周 C语言程序设计(新2版) 练习1-23 删除C语言程序中所有的注释语句(代码有问题?)
- 怎样删除C/C++代码中的所有注释?浅谈状态机的编程思想
- ★ java删除代码注释
- Java-流的简单使用:读取文件、写入文件(面试题:删除注释代码)
- java删除文件夹下的所有文件代码
- 怎样删除C/C++代码中的所有注释?浅谈状态机的编程思想
- 删除Java代码中的注释
- Eclipse删除代码中所有注释及空格
- Java文件删除所有注释 工具+eclipse批量替换(亲测好使)
- 遍历处理文件夹下所有.java文件代码左侧含有形如 /* 56 */注释的代码,并存到新的目录下
- Java-流的简单使用:读取文件、写入文件(面试题:删除注释代码)