前言
公司的一个服务需要申请软著,让我整理代码。
步骤
- 整合代码到一个文件
- 利用vscode或者其他文本编辑器做正则匹配替换
- 删除多行注释和当行注释
- 删除import所在的行
- 删除空行
- 调整代码文字大小和间距
步骤一
将所有的代码整合到一个文档中,用一个简单的java代码实现(网上找的一个文件处理的demo)。
public class test1 {
public static void main(String[] args) {
Path startingDir = Paths.get("D:\\XXX\\src\\main\\java"); // 修改为你的目标文件夹路径
ArrayList<File> files = new ArrayList<>();
try {
Files.walkFileTree(startingDir, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
if (file.toString().endsWith(".java")) {
System.out.println(file);
File file1 = file.toFile();
files.add(file1);
System.out.println("添加成功" + file.getFileName());
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc) {
return FileVisitResult.CONTINUE;
}
});
} catch (IOException e) {
e.printStackTrace();
}
//输出文件
File resultFile = new File("D:\\test\\test.txt");
try {
FileChannel resultFileChannel = new FileOutputStream(resultFile, true).getChannel();
for (int i = 0; i < files.size(); i ++) {
FileChannel blk = new FileInputStream(files.get(i)).getChannel();
resultFileChannel.transferFrom(blk, resultFileChannel.size(), blk.size());
blk.close();
}
resultFileChannel.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
步骤二
删除单行注释和多行注释
单行注释匹配正则
//[\s\S]*?\n
多行注释匹配正则
/\*(.|\r\n|\n)*?\*/
删除import所在的行
import所在行正则匹配
.*import.*
删除空行
空行所代表的正则
^\s*(?=\r?$)\n
步骤三
调整代码文字大小、段落什么的,满足要求就行。