16 個(gè)有用的的Java工具類(小結(jié))
在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。以下工具類、方法按使用流行度排名,參考數(shù)據(jù)來源于Github上隨機(jī)選取的5萬個(gè)開源項(xiàng)目源碼。
一. org.apache.commons.io.IOUtils
closeQuietly:關(guān)閉一個(gè)IO流、socket、或者selector且不拋出異常,通常放在finally塊
toString:轉(zhuǎn)換IO流、 Uri、 byte[]為String
copy:IO流數(shù)據(jù)復(fù)制,從輸入流寫到輸出流中,最大支持2GB
toByteArray:從輸入流、URI獲取byte[]
write:把字節(jié). 字符等寫入輸出流
toInputStream:把字符轉(zhuǎn)換為輸入流
readLines:從輸入流中讀取多行數(shù)據(jù),返回List<String>
copyLarge:同copy,支持2GB以上數(shù)據(jù)的復(fù)制
lineIterator:從輸入流返回一個(gè)迭代器,根據(jù)參數(shù)要求讀取的數(shù)據(jù)量,全部讀取,如果數(shù)據(jù)不夠,則失敗
二. org.apache.commons.io.FileUtils
deleteDirectory:刪除文件夾
readFileToString:以字符形式讀取文件內(nèi)容
deleteQueitly:刪除文件或文件夾且不會(huì)拋出異常
copyFile:復(fù)制文件
writeStringToFile:把字符寫到目標(biāo)文件,如果文件不存在,則創(chuàng)建
forceMkdir:強(qiáng)制創(chuàng)建文件夾,如果該文件夾父級(jí)目錄不存在,則創(chuàng)建父級(jí)
write:把字符寫到指定文件中
listFiles:列舉某個(gè)目錄下的文件(根據(jù)過濾器)
copyDirectory:復(fù)制文件夾
forceDelete:強(qiáng)制刪除文件
三. org.apache.commons.lang.StringUtils
isBlank:字符串是否為空 (trim后判斷)
isEmpty:字符串是否為空 (不trim并判斷)
equals:字符串是否相等
join:合并數(shù)組為單一字符串,可傳分隔符
split:分割字符串
EMPTY:返回空字符串
trimToNull:trim后為空字符串則轉(zhuǎn)換為null
replace:替換字符串
四. org.apache.http.util.EntityUtils
toString:把Entity轉(zhuǎn)換為字符串
consume:確保Entity中的內(nèi)容全部被消費(fèi)??梢钥吹皆创a里又一次消費(fèi)了Entity的內(nèi)容,假如用戶沒有消費(fèi),那調(diào)用Entity時(shí)候?qū)?huì)把它消費(fèi)掉
toByteArray:把Entity轉(zhuǎn)換為字節(jié)流
consumeQuietly:和consume一樣,但不拋異常
getContentCharset:獲取內(nèi)容的編碼
五. org.apache.commons.lang3.StringUtils
isBlank:字符串是否為空 (trim后判斷)
isEmpty:字符串是否為空 (不trim并判斷)
equals:字符串是否相等
join:合并數(shù)組為單一字符串,可傳分隔符
split:分割字符串
EMPTY:返回空字符串
replace:替換字符串
capitalize:首字符大寫
六. org.apache.commons.io.FilenameUtils
getExtension:返回文件后綴名
getBaseName:返回文件名,不包含后綴名
getName:返回文件全名
concat:按命令行風(fēng)格組合文件路徑(詳見方法注釋)
removeExtension:刪除后綴名
normalize:使路徑正?;?br />
wildcardMatch:匹配通配符
seperatorToUnix:路徑分隔符改成unix系統(tǒng)格式的,即/
getFullPath:獲取文件路徑,不包括文件名
isExtension:檢查文件后綴名是不是傳入?yún)?shù)(List<String>)中的一個(gè)
七. org.springframework.util.StringUtils
hasText:檢查字符串中是否包含文本
hasLength:檢測(cè)字符串是否長度大于0
isEmpty:檢測(cè)字符串是否為空(若傳入為對(duì)象,則判斷對(duì)象是否為null)
commaDelimitedStringToArray:逗號(hào)分隔的String轉(zhuǎn)換為數(shù)組
collectionToDelimitedString:把集合轉(zhuǎn)為CSV格式字符串
replace 替換字符串
7. delimitedListToStringArray:相當(dāng)于split
uncapitalize:首字母小寫
collectionToDelimitedCommaString:把集合轉(zhuǎn)為CSV格式字符串
tokenizeToStringArray:和split基本一樣,但能自動(dòng)去掉空白的單詞
八. org.apache.commons.lang.ArrayUtils
contains:是否包含某字符串
addAll:添加整個(gè)數(shù)組
clone:克隆一個(gè)數(shù)組
isEmpty:是否空數(shù)組
add:向數(shù)組添加元素
subarray:截取數(shù)組
indexOf:查找某個(gè)元素的下標(biāo)
isEquals:比較數(shù)組是否相等
toObject:基礎(chǔ)類型數(shù)據(jù)數(shù)組轉(zhuǎn)換為對(duì)應(yīng)的Object數(shù)組
九. org.apache.commons.lang.StringEscapeUtils
參考十五:org.apache.commons.lang3.StringEscapeUtils
十. org.apache.http.client.utils.URLEncodedUtils
format:格式化參數(shù),返回一個(gè)HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串
parse:把String或者URI等轉(zhuǎn)換為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:根據(jù)條件篩選集合元素
transform:根據(jù)指定方法處理集合元素,類似List的map()
filter:過濾元素,雷瑟List的filter()
find:基本和select一樣
collect:和transform 差不多一樣,但是返回新數(shù)組
forAllDo:調(diào)用每個(gè)元素的指定方法
isEqualCollection:判斷兩個(gè)集合是否一致
十三. org.apache.commons.lang3.ArrayUtils
contains:是否包含某個(gè)字符串
addAll:添加整個(gè)數(shù)組
clone:克隆一個(gè)數(shù)組
isEmpty:是否空數(shù)組
add:向數(shù)組添加元素
subarray:截取數(shù)組
indexOf:查找某個(gè)元素的下標(biāo)
isEquals:比較數(shù)組是否相等
toObject:基礎(chǔ)類型數(shù)據(jù)數(shù)組轉(zhuǎn)換為對(duì)應(yīng)的Object數(shù)組
十四. org.apache.commons.beanutils.PropertyUtils
getProperty:獲取對(duì)象屬性值
setProperty:設(shè)置對(duì)象屬性值
getPropertyDiscriptor:獲取屬性描述器
isReadable:檢查屬性是否可訪問
copyProperties:復(fù)制屬性值,從一個(gè)對(duì)象到另一個(gè)對(duì)象
getPropertyDiscriptors:獲取所有屬性描述器
isWriteable:檢查屬性是否可寫
getPropertyType:獲取對(duì)象屬性類型
十五. org.apache.commons.lang3.StringEscapeUtils
unescapeHtml4:轉(zhuǎn)義html
escapeHtml4:反轉(zhuǎn)義html
escapeXml:轉(zhuǎn)義xml
unescapeXml:反轉(zhuǎn)義xml
escapeJava:轉(zhuǎn)義unicode編碼
escapeEcmaScript:轉(zhuǎn)義EcmaScript字符
unescapeJava:反轉(zhuǎn)義unicode編碼
escapeJson:轉(zhuǎn)義json字符
escapeXml10:轉(zhuǎn)義Xml10
這個(gè)現(xiàn)在已經(jīng)廢棄了,建議使用commons-text包里面的方法。
十六. org.apache.commons.beanutils.BeanUtils
copyPeoperties:復(fù)制屬性值,從一個(gè)對(duì)象到另一個(gè)對(duì)象
getProperty:獲取對(duì)象屬性值
setProperty:設(shè)置對(duì)象屬性值
populate:根據(jù)Map給屬性復(fù)制
copyPeoperty:復(fù)制單個(gè)值,從一個(gè)對(duì)象到另一個(gè)對(duì)象
cloneBean:克隆bean實(shí)例
現(xiàn)在你只要了解了以上16種最流行的工具類方法,你就不必要再自己寫工具類了,不必重復(fù)造輪子。大部分工具類方法通過其名字就能明白其用途,如果不清楚的,可以看下別人是怎么用的,或者去網(wǎng)上查詢其用法。
另外,工具類,根據(jù)阿里開發(fā)手冊(cè),包名如果要使用util不能帶s,工具類命名為 XxxUtils
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java常用工具類之DES和Base64加密解密類
- java正則表達(dá)式表單驗(yàn)證類工具類(驗(yàn)證郵箱、手機(jī)號(hào)碼、qq號(hào)碼等)
- java連接數(shù)據(jù)庫增、刪、改、查工具類
- Java中StringUtils工具類的一些用法實(shí)例
- java使用jdbc連接數(shù)據(jù)庫工具類和jdbc連接mysql數(shù)據(jù)示例
- java常用工具類之?dāng)?shù)據(jù)庫連接類(可以連接多種數(shù)據(jù)庫)
- Java常用數(shù)字工具類 數(shù)字轉(zhuǎn)漢字(1)
- java常用工具類之Excel操作類及依賴包下載
- java實(shí)現(xiàn)excel導(dǎo)入數(shù)據(jù)的工具類
- java工具類之實(shí)現(xiàn)java獲取文件行數(shù)
- java實(shí)現(xiàn)http請(qǐng)求工具類示例
相關(guān)文章
SpringBoot使用@Cacheable時(shí)設(shè)置部分緩存的過期時(shí)間方式
這篇文章主要介紹了SpringBoot使用@Cacheable時(shí)設(shè)置部分緩存的過期時(shí)間方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12詳解Spring Security的formLogin登錄認(rèn)證模式
對(duì)于一個(gè)完整的應(yīng)用系統(tǒng),與登錄驗(yàn)證相關(guān)的頁面都是高度定制化的,非常美觀而且提供多種登錄方式。這就需要Spring Security支持我們自己定制登錄頁面,也就是本文給大家介紹的formLogin模式登錄認(rèn)證模式,感興趣的朋友跟隨小編一起看看吧2019-11-11kafka消費(fèi)者kafka-console-consumer接收不到數(shù)據(jù)的解決
這篇文章主要介紹了kafka消費(fèi)者kafka-console-consumer接收不到數(shù)據(jù)的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Mybatis調(diào)用視圖和存儲(chǔ)過程的方法
MyBatis支持普通sql的查詢、視圖的查詢、存儲(chǔ)過程調(diào)用,是一種非常優(yōu)秀的持久層框架。接下來通過本文給大家介紹mybatis調(diào)用視圖和存儲(chǔ)過程的方法,感興趣的朋友一起看看吧2016-10-10SpringBoot整合Redis及Redis工具類撰寫實(shí)例
這篇文章主要介紹了SpringBoot整合Redis及Redis工具類撰寫實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Mybatis-Plus實(shí)現(xiàn)用戶ID自增出現(xiàn)的問題解決
項(xiàng)目基于 SpringBoot + MybatisPlus 3.5.2 使用數(shù)據(jù)庫自增ID時(shí), 出現(xiàn)重復(fù)鍵的問題,本文就來介紹一下解決方法,感興趣的可以了解一下2023-09-09java將一個(gè)整數(shù)轉(zhuǎn)化成二進(jìn)制代碼示例
這篇文章主要介紹了java將一個(gè)整數(shù)轉(zhuǎn)化成二進(jìn)制代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12使用springcloud+oauth2攜帶token去請(qǐng)求其他服務(wù)
這篇文章主要介紹了使用springcloud+oauth2攜帶token去請(qǐng)求其他服務(wù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08