资源简介

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


评论

共有 条评论