java开源框架jpeege,隆重向你推荐这 8 个开源 Java 类库
在青铜时代群里看到读者朋友们在讨论 Java 最常用的工具类,我觉得大家推荐的确实都挺常见的,我自己用的频率也蛮高的。恰好我在 programcreek 上看到过一篇类似的文章,就想着梳理一下分享给大家。
在 Java 中,工具类通常用来定义一组执行通用操作的方法。本篇文章将会向大家展示 8 个工具类以及它们最常用的方法,类的排名和方法的排名均来自可靠的数据,从 GitHub 上最受欢迎的 50000 个开源 Java 项目中精心挑选。
为了方便大家的理解,我会在介绍每个类的方法时写一段小 Demo,这样大家就能知道每个方法该怎么用。放心吧,方法是干嘛的我也不会保密的。
1)IOUtils
org.apache.commons.io.IOUtils,操作 IO 流的工具类,下面是其常用的方法。
closeQuietly(),关闭 IO 流,并且忽略 null 值和异常。
copy(),将字节从输入流复制到输出流。
toByteArray(),以 byte[] 的形式获取输入流中的内容。
write(),将字符或者字节写入输出流中。
toInputStream(),将指定的字符转成输入流。
readLines(),从输入流中一行一行地读取,并按照指定的字符编码返回字符串列表。
copyLarge(),从输入流中复制内容到输出流,超过 2GB。
readFully(),把输入流中的内容读入到字节数组中。
2)FileUtils
org.apache.commons.io.FileUtils,操作文件或者目录的工具类,下面是其常用的方法。
deleteDirectory(),删除目录。
readFileToString(),把文件的内容读入到字符串中。
deleteQuietly(),删除文件,但不抛出异常。
copyFile(),把文件复制到一个新的位置。
writeStringToFile(),把字符串写入到文件。
forceMkdir(),强制创建目录,包括任何必需但不存在的父目录。
write(),把字符或者字节写入到文件。
listFiles(),列出指定目录下的所有文件。
copyDirectory(),将目录下的所有子目录及文件复制到新的目录。
forceDelete(),强制删除文件或者目录及其所有子目录和文件。
3)StringUtils
org.apache.commons.lang3.StringUtils,操作字符串的工具类,并且是 null 安全的,下面是其常用的方法。
isBlank(),检查字符是否为空字符串””,或者 null,或者空格。
检查结果如下所示。
isNotBlank(),与 isBlank() 检查的结果相反。
isEmpty(),检查字符是否为空字符串””,或者 null;和 isBlank() 不同,不包括空格的检查。
检查结果如下所示。
isNotEmpty(),与 isEmpty() 检查的结果相反。
join(),将多个元素连接成一个字符串。
equals(),比较两个字符序列是否相等。
split(),把字符串拆分为数组,拆分符为空白字符。
replace(),替换另一个字符串中所有出现的字符串。
4)FilenameUtils
org.apache.commons.io.FilenameUtils,操作文件名或者路径的工具类,下面是其常用的方法。
getExtension(),获取文件的扩展名。
getBaseName(),获取单纯的文件名或者路径名,文件时去掉路径和扩展名;路径时去掉父级路径。
getName(),如果是文件时,获取文件名和后缀,去掉路径;如果是路径时,去掉父级路径。
concat(),将路径和文件名连接在一起。
wildcardMatch(),检查文件名是否匹配指定的格式。
separatorsToUnix(),将所有分隔符转换为正斜杠的 Unix 分隔符。
getFullPath(),获取文件的完整路径。
5)ArrayUtils
org.apache.commons.lang3.ArrayUtils,操作数组的工具类,下面是其常用的方法。
contains(),检查数组中是否包含某个值。
addAll(),将所有元素添加到一个数组中。
clone(),浅拷贝一个数组。
isEmpty(),检查数组是否为 null 或者没有元素。
add(),在数组中添加一个新的元素,原数组不变。
subarray(),根据起始下标和结束下标截取一个子数组。
indexOf(),找出指定数组的下标。
6)DigestUtils
org.apache.commons.codec.digest.DigestUtils,加密的工具类,下面是其常用的方法。
md5Hex(),计算字符串的 MD5 摘要,并返回 32 位的十六进制字符。
md5(),计算字符串的 MD5 摘要,并返回 16 个元素的字节数组。
7)StringEscapeUtils
org.apache.commons.text.StringEscapeUtils,字符串的转义和反转义工具类,下面是其常用的方法。
unescapeHtml4(),反转义 HTML。
escapeHtml4(),转义 HTML。
escapeJava(),转义 Java。
unescapeJava()
8)BeanUtils
大多数 Java 开发人员习惯于创建 getter/setter 的JavaBean,然后通过调用相应的 getXxx 和 setXxx 方法访问对应字段。但在某些情况下,需要动态访问 Java 对象的属性,org.apache.commons.beanutils.BeanUtils 就派上用场了。
copyProperties(),拷贝所有属性
其中 UserDTO 类的源码如下所示。
其中 EUser 类的源码如下所示。
其中 DateStringConverter 类的源码如下所示。
getProperty(),返回 bean 指定的属性值。
setProperty(),设置 bean 指定的属性值。
编辑整理 丨李嘉琪
java开源框架jpeege,隆重向你推荐这 8 个开源 Java 类库相关推荐
- guns 最新开源框架企业版下载_国内比较火的5款Java微服务开源项目
本文介绍国内比较火的5款Java微服务开源项目,pig是基于Spring Cloud.OAuth2.0.Vue的前后端分离的系统. 通用RBAC权限设计及其数据权限和分库分表 支持服务限流.动态路由. ...
- java—三大框架详解,其发展过程及掌握的Java技术慨括
Struts.Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案.但你是否知道,这些知名框架最初是怎样产生的? 我们知道,传统的Java W ...
- Java日志框架-logback的介绍及配置使用方法(纯Java工程)
说明:内容估计有些旧,2011年的,但是大体意思应该没多大变化,最新的配置可以参考官方文档. 一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分 ...
- 一种Java Spring框架里将配置文件里定义的值注入到Java变量的简单办法
假设我在classpath下的application.properties里定义了一些配置: 我想让这些配置自动注入到我Java代码里某个变量中去.最简单的方式就是使用注解@PropertySourc ...
- 【完结】12大深度学习开源框架(caffe,tf,pytorch,mxnet等)快速入门项目
这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...
- 【完结】给新手的12大深度学习开源框架快速入门项目
文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...
- 12大深度学习开源框架(caffe,tensorflow,pytorch,mxnet等)汇总详解
这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...
- 联邦学习开源框架方案选型
无知者:[联邦学习开源框架]FedLab - 加速FL算法验证 联邦学习开源框架FedLab相关 FATE 单位:微众银行 github: https://github.com/FederatedAI ...
- 深度学习——你需要了解的八大开源框架
深度学习--你需要了解的八大开源框架 2016-08-05 19:18 Blake 0条评论 深度学习八大开源框架 导读:深度学习(Deep Learning)是机器学习中一种基于对数据进行表征学习的 ...
最新文章
- 全球最厉害的 14 位程序员,请收下我的膝盖
- linux nas解决方案_阿里产品总监:四大 Linux 支持的 NAS 解决方案
- jasmine spyOn的单步调试
- bzoj2132: 圈地计划
- 设计模式-15-建造者模式
- python里order什么意思_python中OrderedDict的使用方法详解
- 小程序引入的echarts过大如何解决_小程序如何解决社区团购的痛点
- Delphi中destroy, free, freeAndNil, release用法和区别
- 【浙江大学PAT真题练习乙级】1005 继续(3n+1)猜想 (25分) 真题解析
- SVN MKACTIVITY
- ubuntu中非常好用的PDF软件—okular
- 2.(leaflet篇)leaflet加载接入百度地图
- Tikhonov regularization 吉洪诺夫正则化(L2正则化)
- Gary Marcus:因果熵理论的荒诞和认知科学带给AI的11个启示 | 文末赠书
- 虚幻引擎UE4背包系统(如何制作可拖动(Drag and Drop)的背包(Scrollbox))
- 几何学在计算机中的应用,探析坐标几何的应用意义及其在计算机中的实现
- JAVA获取字符串首字拼音和全拼
- 靶机渗透(一)——bulldog2
- 分享调试SI4432的一些小经验
- PHP PDF内容识别 抓取信息 方法
热门文章
- css魔法 真名,CSS魔法(二)
- 布尔教育mysql优化_布尔教育-资源
- 老农解决猫狗鱼的问题(黑马基础习题)
- Summary of the monthly meeting in January and February
- GIS 之 地图数据的存储
- 开启Maven使用之路
- 逃脱“黑天鹅”魔咒:荣耀逆势增长背后的“反脆弱”之力
- 北理计算机学硕保研,2019计算机保研夏令营经验-上科大、北理、北航、中科院计算所夏令营...
- 虚拟服务器添加用户白名单,apache配置黑名单和白名单及账户权限控制
- 用Python实现喷墨打印机定期清洗喷头