文章来源: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");}
}
删除Java代码中的所有注释
最新推荐文章于 2024-04-29 15:03:45 发布