




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保密法考试题及答案
- 在职研究生考试试题及答案
- 香烟考试题库及答案
- 政治会考试题及答案
- 普通选调面试题及答案
- 如何高效提升孩子洞察力
- 2026届齐鲁名校教科研协作体山东、湖北部分重点中学化学高二上期中调研试题含解析
- 2026届云南省元阳县第三中学化学高一第一学期期中调研试题含解析
- 2025年环境影响评价工程师之环评技术导则与标准考前冲刺试卷A卷含答案
- 保安疫情防控知识培训课件
- 麦当劳标准化执行
- 重症患者目标导向性镇静课件
- 混凝土养护方案
- 高质量SCI论文入门必备从选题到发表全套课件
- 长螺旋钻孔咬合桩基坑支护施工工法
- 库欣综合征英文教学课件cushingsyndrome
- 220kv升压站质量评估报告
- C语言程序设计(第三版)全套教学课件
- 未来医美的必然趋势课件
- 附件1发电设备备品备件验收及仓储保养技术标准
- 12、信息通信一体化调度运行支撑平台(SG-I6000)第3-8部分:基础平台-系统安全防护
评论
0/150
提交评论