我们九天鸟的p2p网贷系统,基本算是开发完成了。
   现在,想给后端的Java代码,增加版权信息。
   手动去copy-paste,太没有技术含量。

于是,写了个Java工具类,给Java源文件增加版权信息。
   源代码,开头的注释,就是版权描述。详细实现,就看代码吧。

 /*
*Copyright © 2015 JiuTianNiao
*武汉九天鸟科技有限公司
*http://JiuTianNiao.com
*All rights reserved.
*/
package com.jiutianniao.p2p.base.util; import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter; import org.apache.log4j.Logger; //给java文件,增加版权信息
public class CopyrightUtil {
private static Logger log = Logger.getLogger(CopyrightUtil.class); public static void main(String[] args) throws Exception {
//java文件所在目录
String dir = "E:/GitRepository/funds";
File file = new File(dir);
addCopyright4Directory(file);
} public static void addCopyright4Directory(File file) throws Exception {
File[] files = file.listFiles();
if (files == null || files.length == 0){
return;
} for (File f : files) {
if (f.isFile()) {
addCopyright4File(f);
System.out.println("文件===" + f.getName());
} else {
System.out.println("目录==" + f.getName());
addCopyright4Directory(f);
}
}
} public static void addCopyright4File(File file) throws Exception {
String fileName = file.getName();
boolean isJava = fileName.endsWith(".java");
if (!isJava) {
log.info("This file is not java source file,filaName=" + fileName);
return;
} if (isJava) {
// 版权字符串
String copyright = "/*\n *Copyright © 2015 JiuTianNiao\n "
+ "*武汉九天鸟科技有限公司\n " + "*http://JiuTianNiao.com\n "
+ "*All rights reserved.\n */\n";
//尝试使用了RandomAccessFile.writeUTF,问题是开头字符是“NUL”,没能解决。
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
String content = "";
//读取一行,一定要加上“换行符”,Windows下可以直接用“\n”
String lineSeperator ="\n";
//lineSeperator = System.getProperty("line.separator")
while ((line = br.readLine()) != null) {
content += line + lineSeperator;
}
br.close();
//把拼接后的字符串写回去
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(copyright);
fileWriter.write(content);
fileWriter.close();
} }
}

   武汉九天鸟-p2p网贷系统开发-互联网应用软件开发
  公司官网:http://jiutianniao.com
  社交问答:http://ask.jiutianniao.com

Java工具类:给程序增加版权信息的更多相关文章

  1. [C#] 常用工具类——应用程序属性信息访问类

    using System; using System.Collections.Generic; using System.Text; using System.Reflection; namespac ...

  2. Java工具类——通过配置XML验证Map

    Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...

  3. 16 个超级实用的 Java 工具类

    阅读本文大概需要 4 分钟. 出处:alterem juejin.im/post/5d4a25b351882505c105cc6e 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用 ...

  4. 干货:排名前 16 的 Java 工具类!

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  5. java工具类系列 (四.SerializationUtils)

    java工具类系列 (四.SerializationUtils) SerializationUtils该类为序列化工具类,也是lang包下的工具,主要用于序列化操作 import java.io.Se ...

  6. 排名前 16 的 Java 工具类

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  7. 排名前16的Java工具类

    原文:https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法 ...

  8. 第一章 Java工具类目录

    在这一系列博客中,主要是记录在实际开发中会常用的一些Java工具类,方便后续开发中使用. 以下的目录会随着后边具体工具类的添加而改变. 浮点数精确计算 第二章 Java浮点数精确计算 crc32将任意 ...

  9. java工具类之按对象中某属性排序

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang ...

随机推荐

  1. R 语言下常用第三方库的说明

    1. doBy 官方文档见 CRAN - Package doBy doBy 主要适用于以下操作: 1) Facilities for groupwise computations of summar ...

  2. @JSONField 注解说明

    转自:https://blog.csdn.net/suyimin2010/article/details/80617538 导入@JSONField 注解: import com.alibaba.fa ...

  3. php学习笔记6

    PHP 字符串变量 PHP 中的字符串变量 字符串变量用于包含有字符的值. 在创建字符串之后,我们就可以对它进行操作了.您可以直接在函数中使用字符串,或者把它存储在变量中. 在下面的实例中,我们创建一 ...

  4. 【MongoDB】The connection between two tables

    In mongoDB, there are two general way to connect with two tables. Manual Connection and use DBRef 1. ...

  5. java 之 wait, notify, park, unpark , synchronized, Condition

    1. wait notify /** * 解释: 唤醒一个等待monitor的线程, 如果有多个线程在等待,会唤醒一个. * 一个线程在等待monitor是由Object.wait引起的 * 获取一个 ...

  6. ORACLE10g R2【单实例 FS→单实例FS】

    ORACLE10g R2[单实例FS→单实例FS] 本演示案例所用环境:   primary standby OS Hostname pry std OS Version RHEL5.8 RHEL5. ...

  7. numpy 高阶函数 —— np.histogram

    np.diff(a, n=1, axis=-1):n 表示差分的阶数: >> x = np.array([1, 2, 4, 7, 0]) >> np.diff(x) array ...

  8. 嵌入式Linux学习笔记 NAND Flash控制器

    一.NAND Flash介绍和NAND Flash控制器的使用 NAND Flash在嵌入式系统中的作用,相当于PC上的硬盘 常见的Flash有NOR Flash和NAND Flash,NOR Fla ...

  9. 微信浏览器跳转外部浏览器 app下载

    这个是摘抄的,具体抄的哪里我忘记了,作为记录 2019年5月14日 现在这个好像也不好用了,微信又提示建议下载qq浏览器什么的,显示一个红色感叹号,让用户产生怀疑,很鄙视tx error_report ...

  10. 6.2、Android硬件访问服务编写系统代码

    1.实现接口文件给App使用,接口文件是应用程序查询获得服务时获得 使用AIDL(Android接口定义语言)来实现ILedService.java接口 定义ILedService.aidl inte ...