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开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...
随机推荐
- POJ Farm Tour
Farm Tour 题目: 约翰有N块地,家在1号,而N号是个仓库.农场内有M条道路(双向的),道路i连接这ai号地和bi号地,长度为ci. 约翰希望依照从家里出发,经过若干地后达到仓库.然后再返回家 ...
- Linux下查看所有用户(shell脚本获取)
在Linux系统中,使用者账号管理最重要的两个文件是/etc/password和/etc/shadow.在/etc/password文件中,每一行都代表一个账号,但是有很多账号是系统账号.比如:b ...
- java图片处理工具类
直接上代码: package com.zxd.tool; /** * Created by zhang on 14-3-1. * 图片的常用操作类 */ import java.awt.AlphaCo ...
- Android面试,IntentService的原理及使用
在Android开发中,我们或许会碰到这么一种业务需求,一项任务分成几个子任务,子任务按顺序先后执行,子任务全部执行完后,这项任务才算成功.那么,利用几个子线程顺序执行是可以达到这个目的的,但是每个线 ...
- XML数据的读取—数据库配置文件
数据库配置文件(config.xml) <?xml version="1.0" encoding="utf-8"?> <configurati ...
- Smokeping如何清空图标数据
先停smokeping服务 service smokeping stop 进去图表数据目录 /opt/smokeping/data /bin/rm -rf ./* 重新加载/opt/smokepi ...
- gc内存回收机制
判断哪些对象可回收 GC是通过对象是否存活来决定是否进行回收,判断对象是否存活主要有两种算法:引用计数算法.可达性分析算法 引用计数算法 引用计数的算法原理是给对象添加一个引用计数器,每被引用一次计数 ...
- 回传值(代理、通知、block)
回传值问题,一直都是困扰初学者的问题,今写者 代理.通知.block 三者的回传值做了一个小小的总结, Main.storyboard 视图: 通过代码分别创建三个代表 代理.通知.block 的按钮 ...
- iOS 网络与多线程--5.异步Post方式的网络请求(非阻塞)
通过Post请求方式,异步获取网络数据,异步请求不会阻塞主线程,而会建立一个新的线程来操作. 代码如下 ViewController.h文件 #import <UIKit/UIKit.h> ...
- Php OpenID
也许大家都有这样的经历与烦恼:当你为了使用某个网站的服务时(若你还没在该网站上注册过),你不得不先注册一个帐号.当你在一堆的网站上注册帐号后,你必需面临管理这些帐号的烦恼.也许你会这样考虑,不同网站注 ...