Apache-common项目提供的工具
---- MD5加密与生成UUID例子(依赖于commons-io.jar):begin ----------------------------------------------------------------------------------------------------
package com.mengyao.jdoc.commons; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.id.Hex;
import org.apache.commons.id.uuid.UUID; /**
*
* @author mengyao
*
*/
public class Utils { /**
* 使用MD5单向加密方式加密指定字符串
* @param str 待转换字符串
* 依赖于commons-codec.jar实现
* @return
*/
public static String getMD5Str(String str){
return DigestUtils.md5Hex(str);
} /**
* 获取UUID
* 依赖于apache-commons-id.jar、commons-discovery.jar实现
* @return
*/
public static String getUUID() {
return new String(Hex.encodeHex(UUID.randomUUID().getRawBytes()));
} public static void main(String[] args) {
System.out.println(getUUID());
System.out.println(getMD5Str("123456"));
}
}
---- MD5加密与生成UUID例子(依赖于commons-io.jar):end----------------------------------------------------------------------------------------------------
---- 监控文件变化例子(依赖于commons-io.jar):begin ----------------------------------------------------------------------------------------------------
package com.lefukj.parser.watcher; import java.io.File; import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationObserver; /**
*
* @author mengyao
*
*/
public class FileListener extends FileAlterationListenerAdaptor { /**
* 文件创建执行
*/
@Override
public void onFileCreate(File file) {
System.out.println("[新建]:" + file.getAbsolutePath());
} /**
* 文件创建修改
*/
@Override
public void onFileChange(File file) {
System.out.println("[修改]:" + file.getAbsolutePath());
} /**
* 文件删除
*/
@Override
public void onFileDelete(File file) {
System.out.println("[删除]:" + file.getAbsolutePath());
} /**
* 目录创建
*/
@Override
public void onDirectoryCreate(File directory) {
System.out.println("[新建]:" + directory.getAbsolutePath());
} /**
* 目录修改
*/
@Override
public void onDirectoryChange(File directory) {
System.out.println("[修改]:" + directory.getAbsolutePath());
} /**
* 目录删除
*/
@Override
public void onDirectoryDelete(File directory) {
System.out.println("[删除]:" + directory.getAbsolutePath());
} @Override
public void onStart(FileAlterationObserver observer) {
super.onStart(observer);
} @Override
public void onStop(FileAlterationObserver observer) {
super.onStop(observer);
} } package com.lefukj.parser.watcher; import java.util.concurrent.TimeUnit; import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver; /**
*
* @author mengyao
*
*/
public class FileMonitorTest { /**
* @param args
*/
public static void main(String[] args) throws Exception {
// 监控目录
String rootDir = "D:/caiji";
// 轮询间隔1 秒
long interval = TimeUnit.SECONDS.toMillis(1);
// 创建一个文件观察器用于处理文件的格式
FileAlterationObserver observer = new FileAlterationObserver(rootDir,
FileFilterUtils.and(FileFilterUtils.fileFileFilter(),
FileFilterUtils.suffixFileFilter(".dat")), // 过滤文件格式
null);
// FileAlterationObserver _observer = new
// FileAlterationObserver(rootDir); observer.addListener(new FileListener()); // 设置文件变化监听器
// 创建文件变化监听器
FileAlterationMonitor monitor = new FileAlterationMonitor(interval,
observer);
// 开始监控
monitor.start();
} }
---- 监控文件变化例子(依赖于commons-io.jar):end ----------------------------------------------------------------------------------------------------
---- 文件读写操作例子(依赖于commons-io.jar):begin ----------------------------------------------------------------------------------------------------
package com.lefukj.parser.utils; import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.SystemUtils; import com.lefukj.parser.configuration.Configuration; /**
*
* @author mengyao
*
*/
@SuppressWarnings("all")
public class FileUtil { public static String getPath(){
String os = SystemUtils.OS_NAME;
String path = null;
if (os.contains("Windows") || os.contains("windows")) {
path = Configuration.WINDOWS_FILE_DIR;
} else if (os.contains("Linux") || os.contains("linux")) {
path = Configuration.LINUX_FILE_DIR;
} return path;
} public static File getFile(String path, String fileName){
File file = new File(path);
if(!file.isDirectory()){
file.mkdir();
}
file = new File(path+fileName);
return file;
} public static boolean writeFile(String path, String fileName, List<?> lines, boolean append) {
boolean status = false;
FileWriter writer = null;
try {
File file = new File(path);
if(!file.isDirectory()){
file.mkdir();
}
file = new File(path+fileName);
writer = new FileWriter(file, append);
IOUtils.writeLines(lines, null, writer);
status = true;
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
} return status;
} public static List<String> readFile(String path){
FileUtils fileUtils = new FileUtils();
List<String> readLines = null;
try {
File file = new File(path);
readLines = fileUtils.readLines(file);
} catch (IOException e) {
}
return readLines;
} public static long getFileLastUpdateTime(File file){
long lastModified = file.lastModified(); return lastModified;
} public static void main(String[] args) {
File file = new File("D:/caiji/users.dat");
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(file.lastModified())));
//2015-07-25 20:30:37
//2015-07-25 20:44:01
} }
---- 文件读写操作例子(依赖于commons-io.jar):end ----------------------------------------------------------------------------------------------------
Apache-common项目提供的工具的更多相关文章
- 15个具有高度影响力的Apache开源项目
自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.其中成功的项目有Geronimo,有Tomcat,有Hadoop,有如今成了大数据王国关键车毂的分布式计算系统. 虽然 ...
- 15个非常重要的Apache开源项目汇总
15个非常重要的Apache开源项目汇总 自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.本文列举了15个多年来非常重要的Apache项目,这些项目不仅对开源运动来说 ...
- 项目自动化建构工具gradle 入门2——log4j输出helloWorld
上一章节呢,有一个能跑的程序了.但是对做工程的人来说,用日志输出感觉比用System.out要有档次一点.比如使用log4j.直接上例子: 1进入D:\work\gradle\log目录 ,您电脑没 ...
- [转]Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...
- 以Jar形式为Web项目提供资源文件
以Jar形式为Web项目提供资源文件 http://www.webjars.org/ Web前端使用了越来越多的JS或CSS如jQuery, Backbone.js 和Twitter Bootstra ...
- PHP性能:序——谈ab(Apache Bench)压力测试工具
PHP性能:序——谈ab(Apache Bench)压力测试工具 ab(Apache Bench)是啥? ab是Apache自带的一个压力测试软件,可以通过ab命令和选项对某个URL进行压力测试.a ...
- 转:PHP性能:序——谈ab(Apache Bench)压力测试工具
PHP性能:序——谈ab(Apache Bench)压力测试工具 ab(Apache Bench)是啥? ab是Apache自带的一个压力测试软件,可以通过ab命令和选项对某个URL进行压力测试.a ...
- Java基础学习总结(70)——开发Java项目常用的工具汇总
要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...
随机推荐
- java的Comparator和Comparable
java的Comparator和Comparable 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. ...
- php编译错误Note that the MySQL client library is not bundled anymore或者cannot find mysql header file
rpm -ivh MySQL-devel-community-5.1.57-1.sles10.x86_64.rpm export PATH=/usr/local/services/libxml2-2. ...
- [转] Console命令详解,让调试js代码变得更简单
http://www.cnblogs.com/see7di/archive/2011/11/21/2257442.html Firebug是网页开发的利器,能够极大地提升工作效率. 但是,它不太容易上 ...
- linux性能调优概述
- 什么是性能调优?(what) - 为什么需要性能调优?(why) - 什么时候需要性能调优?(when) - 什么地方需要性能调优?(where) - 什么人来进行性能调优?(who) - 怎么样 ...
- noip 2012 开车旅行
/*考场上写的暴力 40分钟70分*/ #include<iostream> #include<cstdio> #include<cstring> #define ...
- android中控件的使用
http://www.cnblogs.com/linjiqin/category/284058.html
- MySQL的truncate table 和source 命令
1. truncate table XXX 在测试时,我很讨厌某表的主键一直自增长下去,总觉得从1开始最舒服,^_^,truncate table 就可以帮我,相比delete from 来说 ...
- 使用CAEmitterLayer产生粒子效果
ViewController.m #import "ViewController.h" @implementation ViewController - (void)viewDid ...
- IntelliJ IDEA 12 创建Web项目 教程 超详细版
IntelliJ IDEA 12 新版本发布 第一时间去官网看了下 黑色的主题 很给力 大体使用了下 对于一开始就是用eclipse的童鞋们 估计很难从eclipse中走出来 当然 我也很艰难的走 ...
- mysql命中索引规律
就算where条件里写了and两个条件,然后建了2个独立索引,1个组合索引,他具体命中哪个是不确定的,他会根据数据分布情况选择. 比如 possible_keys :f1,f2,f1f2,有三种 ...