资源简介
Java版本软著源代码整理工具,最近在申请软著20个,要准备源代码,还要删注释删空格,一个60页我想死了,工欲善其事必先利其,还是写个代码跑快点,网上参考了下,修修改改写了个,还没怎么测试各位多包涵,支持多文件、多文件夹。源代码都开放的,我都是在eclipse里用main方法直接跑。输出是个txt,懒得搞word了,我放了个源代码的word模版,复制进去就行了格式都是调过的一页50行。顺便还放个软件使用说明书的模板大家参考下

代码片段和文件信息
package com.jl.tool;
/**
* 去除原文件的注释和空行生成软著源码
* author 徐志军
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class CleanCodeComments {
// COMMENCODES为普通代码模式PRECOMMENTS为斜杠模式MORELINECOMMENTS为多行注释模式
// STARMODEL为多行注释下星号模式,SINGLELINECOMMENTS为单行注释模式,STRINGMODEL为字符串模式,
// TRANSFERMODEL为字符串转义模式
private enum model {
COMMENCODES PRECOMMENTS MORELINECOMMENTS STARMODEL SINGLELINECOMMENTS STRINGMODEL TRANSFERMODEL
}
// stats记录状态
private static model stats = model.COMMENCODES;
public static void main(String[] args) throws Exception {
System.out.println(“见证奇迹的时刻,清洗代码开始!“);
String codeListFile = System.getProperty(“user.dir“) + “\\bin\\“ + “code_files.txt“;
System.out.println(“1、配置文件目录:“);
System.out.println(codeListFile);
List codeFiles = loadFileList(codeListFile);
//定义输出目录
String FileOut=“C:\\Users\\pro\\Desktop\\“+System.currentTimeMillis()+“.txt“;
BufferedWriter bw=new BufferedWriter(new FileWriter(FileOut));
for (String fileName : codeFiles) {
if (fileName == null || fileName.trim().length() == 0) {
continue;
}
if (fileName.startsWith(“#“)) {// #标记为注释文件不处理
continue;
}
String codeStr = cleanCodeComments(fileName);
if(codeStr!=null && codeStr.length()>0) {
bw.append(codeStr);
}
}
bw.close();
System.out.println(“3、清洗完成,输出到:“);
System.out.println(FileOut);
}
public static String cleanCodeComments(String fileName) throws IOException {
File file = new File(fileName);
if (!file.exists()) {
return ““;
}
BufferedReader br = new BufferedReader(new FileReader(file));
StringBuilder sb = new StringBuilder();
int n;
while ((n = br.read()) != -1) {
switch ((char) n) {
case ‘/‘:
if (stats == model.COMMENCODES) {// 如果当前位普通代码模式则转到斜杠模式
stats = model.PRECOMMENTS;
} else if (stats == model.PRECOMMENTS) {// 如果当前为斜杠模式则转到单行注释模式
stats = model.SINGLELINECOMMENTS;
sb.append(““);
} else if (stats == model.MORELINECOMMENTS) {//
sb.append(““);
} else if (stats == model.STARMODEL) {// 如果当前为星号模式则转到普通代码模式
stats = model.COMMENCODES;
sb.append(““);
} else if (stats == model.SINGLELINECOMMENTS) {
sb.append(““);
} else if (stats == model.STRINGMODEL) {
sb.append(“/“);
} else if (stats == model.TRANSFERMODEL) {
stats = model.STRINGMODEL;
sb.append(“/“);
}
break;
case ‘*‘:
if (stats == model.COMMENCODES) {
sb.append(“*“);
} else if (stats == model.PRECOMMENTS) {// 如果为斜杠模式则转到多行注释模式
stats = model.MORELINECOMMENTS;
sb.append(““);
} else if (stats == model.MORELINECOMMENTS) {// 如果当前为多行注释模式则转到星号模式
stats = model.STARMODEL;
sb.append(““);
} else i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9807 2019-06-19 16:30 软著代码整理\CleanCodeComments.java
文件 345 2019-06-19 16:35 软著代码整理\code_files.txt
文件 18733 2019-06-19 16:53 软著代码整理\源码模板.docx
文件 400048 2019-06-19 16:52 软著代码整理\软著使用说明书模板.docx
目录 0 2019-06-19 16:53 软著代码整理
----------- --------- ---------- ----- ----
428933 5
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论