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

一. org.apache.commons.io.IOUtils

closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块;
toString:转换IO流、 Uri、 byte[]为String;
copy:IO流数据复制,从输入流写到输出流中,最大支持2GB;
toByteArray:从输入流、URI获取byte[];
write:把字节. 字符等写入输出流;
toInputStream:把字符转换为输入流;
readLines:从输入流中读取多行数据,返回List<String>;
copyLarge:同copy,支持2GB以上数据的复制;
lineIterator:从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败;

二. org.apache.commons.io.FileUtils

deleteDirectory:删除文件夹;
readFileToString:以字符形式读取文件内容;
deleteQueitly:删除文件或文件夹且不会抛出异常;
copyFile:复制文件;
writeStringToFile:把字符写到目标文件,如果文件不存在,则创建;
forceMkdir:强制创建文件夹,如果该文件夹父级目录不存在,则创建父级;
write:把字符写到指定文件中;
listFiles:列举某个目录下的文件(根据过滤器);
copyDirectory:复制文件夹;
forceDelete:强制删除文件;

三. org.apache.commons.lang.StringUtils

isBlank:字符串是否为空 (trim后判断);
isEmpty:字符串是否为空 (不trim并判断);
equals:字符串是否相等;
join:合并数组为单一字符串,可传分隔符;
split:分割字符串;;
EMPTY:返回空字符串;
trimToNull:trim后为空字符串则转换为null;
replace:替换字符串;

四. org.apache.http.util.EntityUtils

toString:把Entity转换为字符串;
consume:确保Entity中的内容全部被消费。可以看到源码里又一次消费了Entity的内容,假如用户没有消费,那调用Entity时候将会把它消费掉;
toByteArray:把Entity转换为字节流;
consumeQuietly:和consume一样,但不抛异常;
getContentCharset:获取内容的编码。

五. org.apache.commons.lang3.StringUtils

http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html

isBlank:字符串是否为空 (trim后判断);
isEmpty:字符串是否为空 (不trim并判断);
equals:字符串是否相等;
join:合并数组为单一字符串,可传分隔符;
split:分割字符串;
EMPTY:返回空字符串;
replace:替换字符串;
capitalize:首字符大写。contains:字符串包含replace:字符串替换匹配说明:contains和replace在使用的时候尽量少用jdk提供的,因为如果原始字符串为空会报空指针,而org.apache.commons.lang3.StringUtils封装的对空进行了处理很好用。

六. org.apache.commons.io.FilenameUtils

getExtension:返回文件后缀名;
getBaseName:返回文件名,不包含后缀名;
getName:返回文件全名;
concat:按命令行风格组合文件路径(详见方法注释);
removeExtension:删除后缀名;
normalize:使路径正常化;
wildcardMatch:匹配通配符;
seperatorToUnix:路径分隔符改成unix系统格式的,即/;
getFullPath:获取文件路径,不包括文件名;
isExtension:检查文件后缀名是不是传入参数(List<String>)中的一个;

七. org.springframework.util.StringUtils

hasText:检查字符串中是否包含文本;
hasLength:检测字符串是否长度大于0;
isEmpty:检测字符串是否为空(若传入为对象,则判断对象是否为null);
commaDelimitedStringToArray:逗号分隔的String转换为数组;
collectionToDelimitedString:把集合转为CSV格式字符串replace 替换字符串
delimitedListToStringArray:相当于split;
uncapitalize:首字母小写;
collectionToDelimitedCommaString:把集合转为CSV格式字符串;
tokenizeToStringArray:和split基本一样,但能自动去掉空白的单词。

八. org.apache.commons.lang.ArrayUtils

contains:是否包含某字符串;
addAll:添加整个数组;
clone:克隆一个数组;
isEmpty:是否空数组;
add:向数组添加元素;
subarray:截取数组;
indexOf:查找某个元素的下标;
isEquals:比较数组是否相等;
toObject:基础类型数据数组转换为对应的Object数组。

九. org.apache.commons.lang.StringEscapeUtils

参考十五:org.apache.commons.lang3.StringEscapeUtils

十. org.apache.http.client.utils.URLEncodedUtils

format:格式化参数,返回一个HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串;
parse:把String或者URI等转换为List<NameValuePair>

十一. org.apache.commons.codec.digest.DigestUtils

md5Hex:MD5加密,返回32位字符串;
sha1Hex:SHA-1加密;
sha256Hex:SHA-256加密;
sha512Hex:SHA-512加密;
md5:MD5加密,返回16位字符串。

十二. org.apache.commons.collections.CollectionUtils

isEmpty:是否为空
select:根据条件筛选集合元素;
transform:根据指定方法处理集合元素,类似List的map();
filter:过滤元素,类似List的filter();
find:基本和select一样;
collect:和transform 差不多一样,但是返回新数组;
forAllDo:调用每个元素的指定方法;
isEqualCollection:判断两个集合是否一致;

十三. org.apache.commons.lang3.ArrayUtils

contains:是否包含某个字符串;
addAll:添加整个数组;
clone:克隆一个数组;
isEmpty:是否空数组;
add:向数组添加元素;
subarray:截取数组;
indexOf:查找某个元素的下标;
isEquals:比较数组是否相等;
toObject:基础类型数据数组转换为对应的Object数组。

十四. org.apache.commons.beanutils.PropertyUtils

getProperty:获取对象属性值;
setProperty:设置对象属性值;
getPropertyDiscriptor:获取属性描述器;
isReadable:检查属性是否可访问;
copyProperties:复制属性值,从一个对象到另一个对象;
getPropertyDiscriptors:获取所有属性描述器;
isWriteable:检查属性是否可写;
getPropertyType:获取对象属性类型;

十五. org.apache.commons.lang3.StringEscapeUtils

unescapeHtml4:转义html;
escapeHtml4:反转义html;
escapeXml:转义xml;
unescapeXml:反转义xml;
escapeJava:转义unicode编码;
escapeEcmaScript:转义EcmaScript字符;
unescapeJava:反转义unicode编码;
escapeJson:转义json字符;
escapeXml10:转义Xml10

这个现在已经废弃了,建议使用commons-text包里面的方法。

十六. org.apache.commons.beanutils.BeanUtils

copyPeoperties:复制属性值,从一个对象到另一个对象;
getProperty:获取对象属性值;
setProperty:设置对象属性值;
populate:根据Map给属性复制;
copyPeoperty:复制单个值,从一个对象到另一个对象;
cloneBean:克隆bean实例。

你就不必要再自己写工具类了,不必重复造轮子。大部分工具类方法通过其名字就能明白其用途,如果不清楚的,可以看下别人是怎么用的,或者去网上查询其用法。

另外,工具类,根据阿里开发手册,包名如果要使用util不能带s,工具类命名为 XxxUtils。

以上内容是今日头条的总结:https://www.toutiao.com/i6626299915926553095/?tt_from=weixin&utm_campaign=client_share&wxshare_count=2&from=singlemessage&timestamp=1543403189&app=news_article&utm_source=weixin&isappinstalled=0&iid=44116567907&utm_medium=toutiao_ios&group_id=6626299915926553095&pbid=6582516852424525320

在这里,个人也将继续追加平时工作中的一些不错的工具类进行记录。

十七.commons-lang3中的DateUtils

十八.guava中的com.goole.common.base.Preconditions

checkArgument:条件验证

转载于:https://www.cnblogs.com/wynjauu/p/10034012.html

tool class相关推荐

  1. iOS开发8:使用Tool Bar切换视图

    之前讨论的都是单视图应用程序,而在实际应用中,我们可能要多个视图,并根据用户的需要切换视图. iOS中几种典型的多视图程序: (1)Tab Bar Application:程序的底部有一排按钮,轻触其 ...

  2. 安装 Enthought Tool Suite 时遇到的问题

    文:fasiondog  来源:http://blog.csdn.net/KongDong/archive/2009/05/26/4217942.aspx 因想研究一下Enthought Tool S ...

  3. RHEL5.1安装VM TOOL及中文乱码终极解决方案

    VMWARE tool 主要的功能就是让用户在虚拟机和真实系统之间实现无缝切换,这个功能很方便,当然VMware Tools最主要是实现linux和windows的文件共享. 1.挂载VM tool的 ...

  4. Finding iPhone Memory Leaks: A “Leaks” Tool Tutorial[转]

    Finding iPhone Memory Leaks: A "Leaks" Tool Tutorial by OWEN GOSS on 12. FEB, 2009 in RESO ...

  5. The genome polishing tool POLCA makes fast and accurate corrections in genome assemblies

    The genome polishing tool POLCA makes fast and accurate corrections in genome assemblies  基因组抛光工具POL ...

  6. LoRDEC: a tool for correcting errors in long sequencing reads 纠正长序列读取错误的工具

    LoRDEC: a tool for correcting errors in long sequencing reads Eric Rivals 21st August 2015 Abstract ...

  7. Basic local alignment search tool (BLAST)

    Basic local alignment search tool (BLAST) 包括:blastn, blastp, blastx, tblastn, tblastx等. 使用conda安装即可. ...

  8. 手把手教你学Kotlin (1): JetBrains的Kotlin Educational Tool下载、安装和 Kotlin Koans的安装和使用

    文章目录 前言 1.Kotlin Educational Tool下载.安装 2.Kotlin Koans的安装和使用 前言 此教程面向没有Kotlin基础的程序员或者学生 1.Kotlin Educ ...

  9. java 解析证书_java 读取证书类以及key tool gui 1.7

    Key Tool Gui 1.7 /** * Title: Light Weight APIs for crypto * Description: 一个上海CA证书(根证书和用户证书)进行处理的例子 ...

  10. tcpip测试工具软件,TCP Test Tool(TCP测试工具) V2.3 官方版

    TCP Test Tool是一个小巧实用的TCP测试工具,它提供向任何Windows®PC或从任何Windows®PC启动和捕获TCP会话请求的能力.软件专为软件程序员和网络工程师设计,可用于任何IP ...

最新文章

  1. SAP Gigya里类似Netweaver里SAP_ALL的权限
  2. DB、ETL、DW、OLAP、DM、BI关系结构图
  3. java 配置tomcat_为tomcat配置java环境变量
  4. 上线 5 天获得 100 万用户,可为什么我开发的 App 最终却倒闭了?
  5. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_20-页面静态化-静态化测试-填写页面DataUrl...
  6. layui-treeTable v2.0添加搜索功能
  7. 【优化算法】人工蜂鸟算法(AHA)【含Matlab源码 1543期】
  8. 水晶报表图表出现红叉叉的解决方法
  9. 2019蓝桥杯决赛Java_2019年蓝桥杯省赛总结
  10. 计算机设计大赛人工智能大数据类作品研究文档
  11. Knowledge-based Systems期刊投稿经历
  12. html标签和css的语法web的一些知识汇总
  13. docker 自动签到模板制作
  14. 21届校招中获得12家公司offer的一些经验(包括6家银行信息科技岗offer)
  15. 苹果电脑拷贝文件到u盘很慢_给自己挑个好U盘,再也不想天天找同事借了
  16. 四均线交易系统(Four Set of MA Crossover System)
  17. ArrayList 类 的简单应用
  18. ES安装的详细步骤、ES的集群搭建以及ElasticSearch安装时可能出现的问题
  19. 自动驾驶中基于地图的视觉定位方法
  20. django-生鲜商城项目笔记

热门文章

  1. Linux 环境安装 Node、nginx、docker、vsftpd、gitlab
  2. 三个基于.net的浏览器内核使用的比较
  3. nginx功能扩展整理
  4. RxJava 和 RxAndroid 一 (基础)
  5. vue-cli 官方模板webpack-simple的npm run dev 与npm run bulid的一些问题
  6. 如何静态添加toolbar到datagrid
  7. [转载 整理]C语言链表实例
  8. Java 如何有效地避免OOM:善于利用软引用和弱引用
  9. Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解
  10. sersync之不洗澡