`

工具类收藏

阅读更多
Ignacio Coloma说道:作为一个软件开发者,缺乏想象力是最严重的罪过之一。我们经常把事情重复做一遍又一遍,但是我们很少改变这种方式,至少我是这样。经过这些年开发,在我的工具箱里面有了一些每个项目我都需要用到的工具,烦人的重复工作不再是我的事。

下面这些工具也许你已经用到,让我来仔细介绍它们:

StringUtils

这是象面包和奶油一样必须的通用语言库,这个实用工具类包括一些很早以前在String中未包含的重要方法。


Java代码
1.StringUtils.isEmpty(null) && StringUtils.isEmpty(""); // true    
2.StringUtils.isBlank("   \n\t");                       // true    
3.StringUtils.substringAfterLast("foo.bar.baz", ".");   // "baz"    
4.StringUtils.substringBeforeLast("foo.bar.baz", ".");  // "foo.bar"    
5.StringUtils.split("foo.bar.baz", '.');                // { "foo", "bar", "baz" }    
6.StringUtils.split("foo,  bar,baz", ", ");             // { "foo", "bar", "baz" }    
7.StringUtils.leftPad("1", 3, '0');                     // "001"   
StringUtils.isEmpty(null) && StringUtils.isEmpty(""); // true 
StringUtils.isBlank("   \n\t");                       // true 
StringUtils.substringAfterLast("foo.bar.baz", ".");   // "baz" 
StringUtils.substringBeforeLast("foo.bar.baz", ".");  // "foo.bar" 
StringUtils.split("foo.bar.baz", '.');                // { "foo", "bar", "baz" } 
StringUtils.split("foo,  bar,baz", ", ");             // { "foo", "bar", "baz" } 
StringUtils.leftPad("1", 3, '0');                     // "001" 


IOUtils and FileUtils

在一种当你需要手动操作多个文件罕见情况下必须具备的工具,这两个工具很相似(FileUtils操作文件,IOUtils操作InputStream和Reader classes),和捆绑常用IO.


Java代码
1.File file1;  
2.File file2;  
3.InputStream inputStream;  
4.OutputStream outputStream;  
5. 
6.// copy one file into another  
7.FileUtils.copyFile(file1, file2);  
8.IOUtils.copy(inputStream, outputStream);  
9. 
10.// read a file into a String  
11.String s1 = FileUtils.readFileToString(file1);  
12.String s2 = IOUtils.toString(inputStream);  
13. 
14.// read a file into a list of Strings, one item per line  
15.List<String> l1 = FileUtils.readLines(file1);  
16.List<String> l2 = IOUtils.readLines(inputStream);  
17. 
18.// put this in your finally() clause after manipulating streams  
19.IOUtils.closeQuietly(inputStream);  
20. 
21.// return the list of xml and text files in the specified folder and any subfolders  
22.Collection<File> c1 = FileUtils.listFiles(file1, { "xml", "txt" }, true);  
23. 
24.// copy one folder and its contents into another  
25.FileUtils.copyDirectoryToDirectory(file1, file2);  
26. 
27.// delete one folder and its contents  
28.FileUtils.deleteDirectory(file1); 
File file1;
File file2;
InputStream inputStream;
OutputStream outputStream;

// copy one file into another
FileUtils.copyFile(file1, file2);
IOUtils.copy(inputStream, outputStream);

// read a file into a String
String s1 = FileUtils.readFileToString(file1);
String s2 = IOUtils.toString(inputStream);

// read a file into a list of Strings, one item per line
List<String> l1 = FileUtils.readLines(file1);
List<String> l2 = IOUtils.readLines(inputStream);

// put this in your finally() clause after manipulating streams
IOUtils.closeQuietly(inputStream);

// return the list of xml and text files in the specified folder and any subfolders
Collection<File> c1 = FileUtils.listFiles(file1, { "xml", "txt" }, true);

// copy one folder and its contents into another
FileUtils.copyDirectoryToDirectory(file1, file2);

// delete one folder and its contents
FileUtils.deleteDirectory(file1);


Google collections

这是我所知道的最好的扩展实现包,其中一些被社区叫嚣着要加入JDK:


Java代码
1.// create an ArrayList with three arguments  
2.List<String> list = Lists.newArrayList("foo", "bar", "baz");  
3. 
4.// notice that there is no generics or class cast,  
5.// and still this line does not generate a warning.  
6.Set<String> s = Sets.newConcurrentHashSet();  
7. 
8.// intersect and union are basic features of a Set, if you ask me  
9.Set<String> s = Sets.intersect(s1, s2);  
10. 
11.// Example  of multiple values in a Map  
12.ListMultimap<String, Validator> validators = new ArrayListMultimap<String, Validator>();  
13.validators.put("save", new RequiredValidator());  
14.validators.put("save", new StringValidator());  
15.validators.put("delete", new NumberValidator());  
16. 
17.validators.get("save"); // { RequiredValidator, StringValidator }  
18.validators.get("foo");  // empty List (not null)  
19.validators.values();    // { RequiredValidator, StringValidator, NumberValidator } 
// create an ArrayList with three arguments
List<String> list = Lists.newArrayList("foo", "bar", "baz");

// notice that there is no generics or class cast,
// and still this line does not generate a warning.
Set<String> s = Sets.newConcurrentHashSet();

// intersect and union are basic features of a Set, if you ask me
Set<String> s = Sets.intersect(s1, s2);

// Example  of multiple values in a Map
ListMultimap<String, Validator> validators = new ArrayListMultimap<String, Validator>();
validators.put("save", new RequiredValidator());
validators.put("save", new StringValidator());
validators.put("delete", new NumberValidator());

validators.get("save"); // { RequiredValidator, StringValidator }
validators.get("foo");  // empty List (not null)
validators.values();    // { RequiredValidator, StringValidator, NumberValidator }


java.util.concurrent

不是每个人都需要这么重的java.util.concurrent,但是很好用:


Java代码
1.// a map that may be modified (by the same or different thread) while being iterated  
2.Map<String, Something> repository = new ConcurrentHashMap<String, Something>();  
3. 
4.// same with lists. This one is only available with Java 6  
5.List<Something> list = new CopyOnWriteArrayList<Something>(); 
// a map that may be modified (by the same or different thread) while being iterated
Map<String, Something> repository = new ConcurrentHashMap<String, Something>();

// same with lists. This one is only available with Java 6
List<Something> list = new CopyOnWriteArrayList<Something>();


你有好的工具推荐吗?欢迎留言。
来自: java.dzone.com
分享到:
评论

相关推荐

    Android收藏的工具类

    "Android收藏的工具类"这个资源包含了多个实用工具类,涵盖了图片缓存、异步请求、数据库操作、JDBC连接、MD5加密以及网络状态判断等多个方面。下面我们将详细探讨这些知识点。 1. **图片缓存工具类**: 图片缓存...

    精心整理的java常用的26个工具类-独家收藏

    精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个工具类 下载精心整理的java常用的26个...

    资料分类收藏手册(收藏工具)

    数据库操作增加了oledbHelper类。 增加悬浮窗口菜单。 增加对网页的直接浏览和保存。 修改数据库,以便进一步支持两种类型(文本,网页)的存取。 #################################

    (张高伟)非常好用emoji工具类推荐.zip

    在实际应用中,这样的工具类可以极大地简化开发流程,避免开发者自己去处理复杂的字符编码问题。例如,你可以直接调用提供的函数,将用户在聊天框输入的emoji文本转化为前端可以识别和渲染的格式。同时,它也可以...

    自定义日志工具类

    基于Android原生log,自定义日志工具类,打印日志简单,开关方便,日志级别自由控制.

    [] - 2022-10-18 别再自己瞎写工具类了,Spring Boot 内置工具类应有尽有, 建议收藏!!.pdf

    随着互联网技术的不断进步和软件开发需求的日益复杂,快速、高效地实现功能并保证代码质量成为开发者不断追求的目标。...因此,建议每位开发者都能收藏并深入学习这些内置工具类,将它们作为开发过程中的得力助手。

    JAVA 工具类集合,有自定义的,也有收藏的,以备项目使用.zip

    "JAVA 工具类集合,有自定义的,也有收藏的,以备项目使用.zip" 这个压缩包文件很可能是包含了作者在实际开发过程中积累的各种实用工具类,这些工具类可以极大地提升开发效率并降低代码重复性。 首先,我们要理解...

    开发工具类代码 java

    总的来说,"开发工具类代码 java" 是一个集实用性与教育性于一体的资源,它包含了Java开发中的常见问题解决方案和规范化的代码实现,值得开发者们收藏和学习。通过深入研究和应用这些工具类,可以提升个人的编程技能...

    声量工具类以及PCA工具类

    声量计算工具类以及PCA工具类,声量构成的六个维度因素包括阅读量(reading)、点击量(click)、转发量(forward)、评论量(comment)、点赞量(support)、收藏数(collection)

    android 常用工具类

    在开发中经常用到的一些android常用工具类,总结起来,收藏下!!

    收藏夹小工具.rar

    收藏夹小工具是一款实用的计算机应用程序,主要用于管理和优化用户的浏览器收藏夹。这个压缩包文件包含了该小工具的安装或执行程序,可能还包括相关的帮助文档、设置文件等。下面将详细介绍收藏夹小工具的相关知识点...

    js通用日期格式化工具 date.js

    js通用日期格式化工具,直接引用该工具类就可以使用,方便快捷,建议大家收藏此工具类,该工具很好的解决了前端页面显示日期格式问题

    工具箱 (收藏夹,网络硬盘)

    【标题】:“工具箱 (收藏夹,网络硬盘)”通常指的是一个集合了各种实用工具和功能的软件或在线服务,它可以帮助用户整理、存储和访问他们的收藏夹和网络资源,类似于一个个人化的数字工作台。这样的工具箱可能包含...

    网址收藏程序 密码保存 分类收藏

    【标题】:“网址收藏程序 密码保存 分类收藏”是指一种特定类型的软件...通过上述的分析,我们可以看到“网址收藏程序 密码保存 分类收藏”是一个全面的在线信息管理工具,旨在提供高效、安全且个性化的网址管理服务。

    【工具篇】java导出excel工具类,多种模式自动配置,绝对值得你收藏

    在IT行业中,尤其是在Web开发领域,常常需要处理数据导出的功能,其中Excel是最常见的导出格式之一。本文将介绍一个基于Java的工具类——`...如果你在工作中经常遇到Excel导出任务,这个工具类绝对值得你收藏和使用。

    易语言收藏夹小工具

    《易语言收藏夹小工具详解》 易语言,作为一款以“易”为名的编程语言,旨在降低编程难度,让计算机技术更加贴近普通用户。本文将深入探讨一个基于易语言开发的“收藏夹小工具”及其源码,旨在帮助读者理解和学习...

    小工具类_粤语小词典.zip

    《小工具类_粤语小词典》是一个专注于粤语学习和翻译的实用工具,它包含了大量的粤语词汇和短语,旨在帮助用户理解和使用粤语。粤语,又称广东话,是汉语的一种方言,主要在广东省、香港、澳门以及海外华人社区广泛...

    收藏夹死链和重复链接检查工具

    收藏夹死链和重复链接检查工具是用于管理个人网络收藏夹的重要辅助软件。在互联网上,我们经常保存各种网页链接到浏览器...定期使用这类工具,可以确保我们的网络资源库始终保持最佳状态,便于我们随时访问所需的信息。

    java后台微信支付工具类

    Java后台微信支付工具类是开发微信支付功能时不可或缺的一部分,它通常包含了处理微信支付API请求、响应和数据签名等一系列操作的代码。这个工具包适用于Java后端开发人员,旨在简化与微信支付服务的交互,提高开发...

Global site tag (gtag.js) - Google Analytics