最火的16個(gè)JAVA工具類(lèi),你知道多少個(gè)?

在Java中,工具類(lèi)定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類(lèi)。以下工具類(lèi)、方法按使用流行度排名,參考數(shù)據(jù)來(lái)源于Github上隨機(jī)選取的5萬(wàn)個(gè)開(kāi)源項(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ù)制,從輸入流寫(xiě)到輸出流中,最大支持2GB

toByteArray:從輸入流、URI獲取byte[]

write:把字節(jié). 字符等寫(xiě)入輸出流

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:把字符寫(xiě)到目標(biāo)文件,如果文件不存在,則創(chuàng)建

forceMkdir:強(qiáng)制創(chuàng)建文件夾,如果該文件夾父級(jí)目錄不存在,則創(chuàng)建父級(jí)

write:把字符寫(xiě)到指定文件中

listFiles:列舉某個(gè)目錄下的文件(根據(jù)過(guò)濾器)

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

需進(jìn)階需獲取架構(gòu)師資料,請(qǐng)和小編一起來(lái)學(xué)習(xí)進(jìn)步,JAVA高階交流群:851531810;小編在等你,你在哪?

toString:把Entity轉(zhuǎn)換為字符串

consume:確保Entity中的內(nèi)容全部被消費(fèi)??梢钥吹皆创a里又一次消費(fèi)了Entity的內(nèi)容,假如用戶(hù)沒(mé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:首字符大寫(xiě)

六. org.apache.commons.io.FilenameUtils

getExtension:返回文件后綴名

getBaseName:返回文件名,不包含后綴名

getName:返回文件全名

concat:按命令行風(fēng)格組合文件路徑(詳見(jiàn)方法注釋)

removeExtension:刪除后綴名

normalize:使路徑正?;?/p>

wildcardMatch:匹配通配符

seperatorToUnix:路徑分隔符改成unix系統(tǒng)格式的,即/

getFullPath:獲取文件路徑,不包括文件名

isExtension:檢查文件后綴名是不是傳入?yún)?shù)(List<String>)中的一個(gè)

七. org.springframework.util.StringUtils

hasText:檢查字符串中是否包含文本

hasLength:檢測(cè)字符串是否長(zhǎng)度大于0

isEmpty:檢測(cè)字符串是否為空(若傳入為對(duì)象,則判斷對(duì)象是否為null)

commaDelimitedStringToArray:逗號(hào)分隔的String轉(zhuǎn)換為數(shù)組

collectionToDelimitedString:把集合轉(zhuǎn)為CSV格式字符串

replace 替換字符串

7. delimitedListToStringArray:相當(dāng)于split

uncapitalize:首字母小寫(xiě)

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ǔ)類(lèi)型數(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)換為L(zhǎng)ist<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ù)指定方法處理集合元素,類(lèi)似List的map()

filter:過(guò)濾元素,雷瑟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ǔ)類(lèi)型數(shù)據(jù)數(shù)組轉(zhuǎn)換為對(duì)應(yīng)的Object數(shù)組

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

getProperty:獲取對(duì)象屬性值

setProperty:設(shè)置對(duì)象屬性值

getPropertyDiscriptor:獲取屬性描述器

isReadable:檢查屬性是否可訪問(wèn)

copyProperties:復(fù)制屬性值,從一個(gè)對(duì)象到另一個(gè)對(duì)象

getPropertyDiscriptors:獲取所有屬性描述器

isWriteable:檢查屬性是否可寫(xiě)

getPropertyType:獲取對(duì)象屬性類(lèi)型

十五. 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包里面的方法。

需進(jìn)階需獲取架構(gòu)師資料,請(qǐng)和小編一起來(lái)學(xué)習(xí)進(jìn)步,JAVA高階交流群:851531810;小編在等你,你在哪?

十六. 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種最流行的工具類(lèi)方法,你就不必要再自己寫(xiě)工具類(lèi)了,不必重復(fù)造輪子。大部分工具類(lèi)方法通過(guò)其名字就能明白其用途,如果不清楚的,可以看下別人是怎么用的,或者去網(wǎng)上查詢(xún)其用法。

需進(jìn)階需獲取架構(gòu)師資料,請(qǐng)和小編一起來(lái)學(xué)習(xí)進(jìn)步,JAVA高階交流群:851531810;小編在等你,你在哪?

另外,工具類(lèi),根據(jù)阿里開(kāi)發(fā)手冊(cè),包名如果要使用util不能帶s,工具類(lèi)命名為XxxUtils。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容