资源简介
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
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
- java8学习教程之lambda表达式的使用方法
评论
共有 条评论