别问我为什么,偶尔总会有这种需要。
下面的代码可以直接运行,默认为处理*.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;
/**
* @author tipx
* @build 2010-12-23
*/
public class Utils {
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:\\proj\\scm\\web\\tmp\\src"); //删除目录下所有java文件注释
//删除某个具体文件的注释
//clearComment("D:\\proj\\scm\\action\\AbcdefgAction.java");
}
}
分享到:
相关推荐
使用python脚本快速删除java文件中的注释
java中删除java文件里的注释完整版
java_SQL文件批量删除注释 ,实现自动批量处理Sql脚本中的注释,方便发布您自己的脚本,简单好用。亲测可以用的,谢谢支持。
1.仅支持删除java文件和txt文件;(如果想支持其他格式的文件,请用"."+格式后缀名替换clear_annot类的103行".txt"); 2.仅支持删除以注释开头的行该行前部的注释;(主要是为了删除jd-gui.exe反编译的文件前部的烦人...
用java编写的代码注释删除小工具,能去文本中掉//和/* */注释。 第一个按钮的功能为去掉文本框1中代码的注释,输出到文本框2. 第二个按钮的功能为批量删除文件中的注释,并输出到当前目录(新文件名为xxx.txt)。但...
这个"Java 删除项目里面的注释所用到的包.zip"可能包含了一个或多个工具或库,专门用于自动化删除Java源代码中的注释。在进行这类操作时,需要注意一些关键点以确保代码质量和安全性。 首先,让我们了解一下为什么...
本教程将介绍如何使用Java反编译工具去除代码中的注释,使代码更易于阅读和引用。 标题"java反编译去除注释一建去除超级简单"指的是一个简单易用的方法,可以快速地将Java字节码反编译并移除其中的注释。通常,反...
本篇文章将详细探讨如何在Java项目中有效地清除注释。 首先,我们来看一下使用MyEclipse这个强大的Java集成开发环境(IDE)来清除注释的方法。MyEclipse是基于Eclipse定制的一个版本,提供了许多方便的开发工具和...
在Java开发过程中,注释是必不可少的部分,它们用于解释代码的功能和逻辑,便于团队协作和后期维护。然而,在某些情况下,比如发布生产环境的代码或者为了优化编译速度,我们可能需要清除代码中的注释。以下将详细...
2. 遗失信息:注释中可能包含了开发者对某些问题的解决方案、历史变更记录等重要信息,一旦删除可能永久丢失。 3. 法律风险:在开源项目中,删除许可证注释可能违反开源协议,引发法律纠纷。 4. 影响团队协作:...
本文实例讲述了Python删除Java源文件中全部注释的实现方法。分享给大家供大家参考,具体如下: 同事想删除一个Java项目中的全部注释,让我帮忙想想办法。 没找不到合适工具,就写了这个脚本,遍历指定目录,查找*....
它不仅仅限于处理单一文件,而是能够遍历一个文件夹中的所有C、C++和Java源代码文件,自动移除其中的单行注释(//)和多行注释(/* */)。开发者仅需简单选择包含源代码的文件夹,工具便会自动执行清除任务。这种...
例如,如果你的项目主要由JavaScript和Java文件组成,你可能会选择`.js`和`.java`作为后缀名。此外,对于注释的匹配,通常会区分行内注释(以`//`开头)和多行注释(以`/*`和`*/`包围)。在实际操作中,可以使用正则...
在Java编程中,处理HTML文件时有时需要去除其中的注释内容,以实现特定的功能需求,比如在给定的项目中,需要读取HTML文本文件并删除其中的注释以便进一步处理或存储。删除HTML注释的过程涉及到对HTML结构的理解以及...
这个“JAVA 去除注释的jar工具”就是为此目的设计的,它能够帮助开发者从源代码或已编译的jar文件中移除注释。 首先,了解Java注释的种类。Java中的注释主要有三种类型:单行注释(//)、多行注释(/*...*/)和文档...
1. 手动编辑:对于小型项目,可以直接打开源代码文件,逐行检查并删除注释。但这种方法费时费力,容易出错,且不适合大规模的代码库。 2. 使用自动化工具:对于大型项目,更常见的方式是使用专门的去注释工具。这些...
在提供的脚本中,它用于删除源代码文件的注释。脚本通过检查用户是否提供源文件和目标文件作为参数来进行操作。 脚本首先检查是否提供了源文件,如果没有,它会输出错误信息并退出。接着,它获取源文件的后缀名,...
在这个Java项目中,开发者创建了一个功能,使得程序能够读取、写入和管理INI文件,同时结合了Swing组件来提供用户界面,使得用户可以直接在图形界面上进行文件操作。 1. **INI文件结构**: INI文件由键值对组成,...
在本文中,我们将深入探讨如何使用递归方法在Java中删除文件,这通常涉及到目录及其包含的所有文件和子目录的删除。以下是根据提供的代码片段提炼出的关键知识点: ### 关键知识点一:递归函数设计 递归函数`find...