干貨:排名前16的Java工具類!
在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:刪除文件或文件夾且不會拋出異常
 - copyFile:復(fù)制文件
 - writeStringToFile:把字符寫到目標(biāo)文件,如果文件不存在,則創(chuàng)建
 - forceMkdir:強(qiáng)制創(chuàng)建文件夾,如果該文件夾父級目錄不存在,則創(chuàng)建父級
 - 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)換為
 - nullreplace:替換字符串
 
三. 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ū)阉M(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:使路徑正?;?nbsp;
 - wildcardMatch:匹配通配符
 - seperatorToUnix:路徑分隔符改成unix系統(tǒng)格式的,即/
 - getFullPath:獲取文件路徑,不包括文件名
 - isExtension:檢查文件后綴名是不是傳入?yún)?shù)(List<String>)中的一個(gè)
 
七. org.springframework.util.StringUtils
- hasText:檢查字符串中是否包含文本
 - hasLength:檢測字符串是否長度大于0
 - isEmpty:檢測字符串是否為空(若傳入為對象,則判斷對象是否為null)
 - commaDelimitedStringToArray:逗號分隔的String轉(zhuǎn)換為數(shù)組
 - collectionToDelimitedString:把集合轉(zhuǎn)為CSV格式字符串replace 替換字符串7.
 - delimitedListToStringArray:相當(dāng)于split
 - uncapitalize:首字母小寫
 - collectionToDelimitedCommaString:把集合轉(zhuǎn)為CSV格式字符串tokenizeToStringArray:和split基本一樣,但能自動去掉空白的單詞
 
八. 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)換為對應(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)換為對應(yīng)的Object數(shù)組
 
十四. org.apache.commons.beanutils.PropertyUtils
- getProperty:獲取對象屬性值
 - setProperty:設(shè)置對象屬性值
 - getPropertyDiscriptor:獲取屬性描述器
 - isReadable:檢查屬性是否可訪問
 - copyProperties:復(fù)制屬性值,從一個(gè)對象到另一個(gè)對象
 - getPropertyDiscriptors:獲取所有屬性描述器
 - isWriteable:檢查屬性是否可寫
 - getPropertyType:獲取對象屬性類型
 
十五. 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è)對象到另一個(gè)對象
 - getProperty:獲取對象屬性值
 - setProperty:設(shè)置對象屬性值
 - populate:根據(jù)Map給屬性復(fù)制
 - copyPeoperty:復(fù)制單個(gè)值,從一個(gè)對象到另一個(gè)對象
 - cloneBean:克隆bean實(shí)例現(xiàn)在你只要了解了以上16種***的工具類方法,你就不必要再自己寫工具類了,不必重復(fù)造輪子。大部分工具類方法通過其名字就能明白其用途,如果不清楚的,可以看下別人是怎么用的,或者去網(wǎng)上查詢其用法。
 - 另外,工具類,根據(jù)阿里開發(fā)手冊,包名如果要使用util不能帶s,工具類命名為 XxxUtils。
 















 
 
 











 
 
 
 