我们九天鸟的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. 《一》File 类的介绍

    File 类:文件和目录路径名的抽象表示. 注意:File 类只能操作文件的属性,文件的内容是不能操作的.   1.File 类的字段   我们知道,各个平台之间的路径分隔符是不一样的. ①.对于UN ...

  2. Zabbix 监控搭建

    Zabbix官网地址:https://www.zabbix.com/download 1.服务端 1.操作前安装好Mysql数据库 配置yum源,安装部署Zabbix rpm -i http://re ...

  3. mycat基本概念及读写分离一

    mycat基本概念及读写分离一 目录(?)[+] 安装与启动 mycat目录介绍 mycat三个最重要配置文件 验证读写分离 安装与启动 linux下可以下载Mycat-server-xxxxx.li ...

  4. oracle 日期

    http://blog.itpub.net/126211/viewspace-712986/

  5. opencv之SURF图像匹配

    1.概述 前面介绍模板匹配的时候已经提到模板匹配时一种基于灰度的匹配方法,而基于特征的匹配方法有FAST.SIFT.SURF等.上面两篇文章已经介绍过使用Surf算法进行特征点检測以及使用暴力匹配(B ...

  6. [1,2,3].forEach(alert);这样的写法有什么利和弊吗?

    以下这个问题遇到了之后.问了太阳神,以下是太阳神的解答: [1,2,3].forEach(alert);这样的写法有什么利和弊吗? 首先forEach使用方法非常easy降低代码量, 可是也有非常多地 ...

  7. 关于React中,map出来的元素添加事件问题

    用es6 map 的写法 直接绑定一个onTouchStart 事件不会报错. 用es5的map写法  如果不加上this  会报这个错误 无法读取未定义的属性 解决的方法是 绑定this  就可以了

  8. scrapy-加蘑菇代理

    加代理ip     隧道代理 setting中 解开  下载器 

  9. datagridview问题

    在winform中,取datagridview某个单元格的值,然后与另外一个值相减,如果相减等于0,结果却为-7.105427357601E-15 Convert.ToDouble(xun_dataG ...

  10. 5.容器管理【Docker每天5分钟】

    原文:5.容器管理[Docker每天5分钟] Docker给PaaS世界带来的“降维打击”,其实是提供了一种非常便利的打包机制.该机制打包了应用运行所需要的整个操作系统,从而保证了本地环境和云端环境的 ...