干貨:排名前16的Java工具類

在Java中李丰,工具類定義了一組公共方法逼泣,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類舟舒。以下工具類、方法按使用流行度排名氏仗,參考數(shù)據(jù)來源于Github上隨機(jī)選取的5萬個(gè)開源項(xiàng)目源碼。


進(jìn)群:697699179可以獲取Java各類入門學(xué)習(xí)資料呐舔!

這是我的微信公眾號(hào)【編程study】各位大佬有空可以關(guān)注下慷蠕,每天更新Java學(xué)習(xí)方法,感謝澎现!

學(xué)習(xí)中遇到問題有不明白的地方每辟,推薦加小編Java學(xué)習(xí)群:697699179內(nèi)有視頻教程 ,直播課程 妹蔽,等學(xué)習(xí)資料挠将,期待你的加入

一. 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)拇厢。可以看到源碼里又一次消費(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:使路徑正常化

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蓝翰。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末畜份,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子漂坏,更是在濱河造成了極大的恐慌顶别,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件完慧,死亡現(xiàn)場(chǎng)離奇詭異剩失,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)脾歧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門演熟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芒粹,“玉大人,你說我怎么就攤上這事化漆。” “怎么了疙赠?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵棺聊,是天一觀的道長。 經(jīng)常有香客問我限佩,道長裸弦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮窖贤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘滤蝠。我一直安慰自己授嘀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布览闰。 她就那樣靜靜地躺著巷折,像睡著了一般。 火紅的嫁衣襯著肌膚如雪油吭。 梳的紋絲不亂的頭發(fā)上逊拍,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天芯丧,我揣著相機(jī)與錄音,去河邊找鬼缨恒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛岭佳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播述寡,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼叶洞,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼衩辟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起艺晴,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤封寞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后沾瓦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谦炒,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年缕探,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了爹耗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谜喊。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖山卦,靈堂內(nèi)的尸體忽然破棺而出诵次,到底是詐尸還是另有隱情枚碗,我是刑警寧澤铸本,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站怨规,受9級(jí)特大地震影響锡足,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一扩灯、第九天 我趴在偏房一處隱蔽的房頂上張望霜瘪。 院中可真熱鬧,春花似錦捻撑、人聲如沸缤底。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徙歼。三九已至,卻和暖如春魄梯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灭翔。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工缠局, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人狭园。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓唱矛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绎谦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容