java生成清除所有注释工具类.docx_第1页
java生成清除所有注释工具类.docx_第2页
java生成清除所有注释工具类.docx_第3页
java生成清除所有注释工具类.docx_第4页
java生成清除所有注释工具类.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

package common;/* * 这个类用于去除原文件的注释 * author 李端宝 * update LEEO date :2013-04-10 */import java.io.IOException;import java.io.Reader;public class RemoveComments/ COMMENCODES为普通代码模式,PRECOMMENTS为斜杠模式,MORELINECOMMENTS为多行注释模式,/ STARMODEL为多行注释下星号模式,SINGLELINECOMMENTS为单行注释模式,STRINGMODEL为字符串模式,/ TRANSFERMODEL为字符串转义模式private enum model COMMENCODES, PRECOMMENTS, MORELINECOMMENTS, STARMODEL, SINGLELINECOMMENTS, STRINGMODEL, TRANSFERMODEL/stats记录状态private model stats = model.COMMENCODES;public String remove(Reader in) throws IOException StringBuilder s = new StringBuilder();int n;while (n = in.read() != -1) switch (char) n) case /:if (stats = model.COMMENCODES) / 如果当前位普通代码模式则转到斜杠模式stats = model.PRECOMMENTS; else if (stats = model.PRECOMMENTS) / 如果当前为斜杠模式则转到单行注释模式stats = model.SINGLELINECOMMENTS;s.append( ); else if (stats = model.MORELINECOMMENTS) /s.append( ); else if (stats = model.STARMODEL) / 如果当前为星号模式则转到普通代码模式stats = model.COMMENCODES;s.append( ); else if (stats = model.SINGLELINECOMMENTS) s.append( ); else if (stats = model.STRINGMODEL) s.append(/); else if (stats = model.TRANSFERMODEL) stats = model.STRINGMODEL;s.append(/);break;case *:if (stats = model.COMMENCODES) s.append(*); else if (stats = model.PRECOMMENTS) / 如果为斜杠模式则转到多行注释模式stats = model.MORELINECOMMENTS;s.append( ); else if (stats = model.MORELINECOMMENTS) / 如果当前为多行注释模式则转到星号模式stats = model.STARMODEL;s.append( ); else if (stats = model.STARMODEL) s.append( ); else if (stats = model.SINGLELINECOMMENTS) s.append( ); else if (stats = model.STRINGMODEL) s.append(*); else if (stats = model.TRANSFERMODEL) s.append(*);break;case :if (stats = model.COMMENCODES) / 如果当前为普通代码模式则转到字符串模式stats = model.STRINGMODEL;s.append(); else if (stats = model.PRECOMMENTS) / 如果当前为斜杠模式则转到普通代码模式stats = model.COMMENCODES;s.append(/); else if (stats = model.STARMODEL) / 如果当前为星号模式则转到多行注释模式stats = model.MORELINECOMMENTS;s.append( ); else if (stats = model.SINGLELINECOMMENTS) s.append( ); else if (stats = model.STRINGMODEL) / 如果当前为字符串模式则转到普通代码模式stats = model.COMMENCODES;s.append(); else if (stats = model.TRANSFERMODEL) / 如果当前为转义模式则转到字符串格式stats = model.STRINGMODEL;s.append();break;case :if (stats = model.COMMENCODES) s.append(); else if (stats = model.PRECOMMENTS) / 如果当前为斜杠模式则转到普通代码格式stats = model.COMMENCODES;s.append(/); else if (stats = model.MORELINECOMMENTS) s.append( ); else if (stats = model.STARMODEL) / 如果当前为星号模式则转到多行注释模式stats = model.MORELINECOMMENTS;s.append( ); else if (stats = model.SINGLELINECOMMENTS) s.append( ); else if (stats = model.STRINGMODEL) / 如果当前为字符串模式则转到字符串转移模式stats = model.TRANSFERMODEL;s.append(); else if (stats = model.TRANSFERMODEL) / 如果当前为字符串转义模式则转到字符串模式stats = model.STRINGMODEL;s.append();break;case n:if (stats = model.COMMENCODES) s.append(n); else if (stats = model.PRECOMMENTS) / 如果当前为斜杠模式则转到普通代码格式stats = model.COMMENCODES;s.append(/n); else if (stats = model.MORELINECOMMENTS) s.append(n); else if (stats = model.STARMODEL) / 如果当前为星号模式则转到多行注释模式stats = model.MORELINECOMMENTS;s.append(n); else if (stats = model.SINGLELINECOMMENTS) / 如果当前为单行注释模式则转到普通代码格式stats = model.COMMENCODES;s.append(n); else if (stats = model.STRINGMODEL) s.append(n); else if (stats = model.TRANSFERMODEL) s.append(n);break;default:if (stats = model.COMMENCODES) s.append(char) n); else if (stats = model.PRECOMMENTS) / 如果当前为斜杠模式则转到普通代码格式stats = model.COMMENCODES;s.append(/ + (char) n); else if (stats = model.STARMODEL) / 如果当前为星号模式则转到多行注释模式stats = model.MORELINECOMMENTS;s.append( ); else if (stats = model.SINGLELINECOMMENTS) s.append( ); else if (stats = model.STRINGMODEL) s.append(char) n); else if (stats = model.TRANSFERMODEL) / 如果当前为字符串转义模式则转到字符串模式stats = model.STRINGMODEL;s.append(char) n);break;String result = s.toString();System.out.println(result);return result;package common;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import common.RemoveComments;/* * 参考网上一篇文章*有改动 * author LEEO Date:2013-04-10 * */public class RCMain static final String encoding=UTF-8;static final String type=UTF-8;public static void main(String args) throws IOException / 源文件夹String sUrl = E:teamedi-domainsrc;/ 目标文件夹String tUrl = D:/code/;/ 创建目标文件夹(new File(tUrl).mkdirs();/ 获取源文件夹当前下的文件或目录File file = (new File(sUrl).listFiles();for (int i = 0; i file.length; i+) if (filei.isFile() / 复制文件String type = filei.getName().substring(filei.getName().lastIndexOf(.) + 1);if (type.equalsIgnoreCase(type) copyJavaFile(filei, tUrl + filei.getName(), encoding);else copyOtherFile(filei, new File(tUrl + filei.getName();if (filei.isDirectory() / 复制目录String sourceDir = sUrl + File.separator + filei.getName();String targetDir = tUrl + File.separator + filei.getName();copyDirectiory(sourceDir, targetDir);/* * 复制非java文件 * * param sourceFile * param targetFile * throws IOException */public static void copyOtherFile(File sourceFile, File targetFile)throws IOException BufferedInputStream inBuff = null;BufferedOutputStream outBuff = null;try / 新建文件输入流并对它进行缓冲inBuff = new BufferedInputStream(new FileInputStream(sourceFile);/ 新建文件输出流并对它进行缓冲outBuff = new BufferedOutputStream(new FileOutputStream(targetFile);/ 缓冲数组byte b = new byte1024 * 5;int len;while (len = inBuff.read(b) != -1) outBuff.write(b, 0, len);/ 刷新此缓冲的输出流outBuff.flush(); finally / 关闭流if (inBuff != null)inBuff.close();if (outBuff != null)outBuff.close();/ 复制文件夹public static void copyDirectiory(String sourceDir, String targetDir)throws IOException / 新建目标目录(new File(targetDir).mkdirs();/ 获取源文件夹当前下的文件或目录File file = (new File(sourceDir).listFiles();for (int i = 0; i file.length; i+) if (filei.isFile() / 源文件File sourceFile = filei;/ 复制文件String type = filei.getName().substring(filei.getName().lastIndexOf(.) + 1);if (type.equalsIgnoreCase(type) copyJavaFile(sourceFile,new File(targetDir).getAbsolutePath()+ File.separator + filei.getName(),encoding);else copyOtherFile(filei,new File(new File(targetDir).getAbsolutePath()+ File.separator + filei.getName();if (filei.isDirectory() / 准备复制的源文件夹String dir1 = sourceDir + / + filei.getName();/ 准备复制的目标文件夹String dir2 = targetDir + / + filei.getName();copyDirectiory(dir1, dir2);/* * 字符串写入文件 * param content * param fileName */private static void saveAsFileWriter(String content, String fileName) FileWriter fwriter = n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论