image
在Java中,工具類定義了一組公共方法,這篇文章将介紹Java中使用最頻繁及最通用的Java工具類。以下工具類、方法按使用流行度排名,參考資料來源于Github上随機選取的5萬個開源項目源碼。
一. org.apache.commons.io.IOUtils
closeQuietly:關閉一個IO流、socket、或者selector且不抛出異常,通常放在finally塊
toString:轉換IO流、 Uri、 byte[]為String
copy:IO流資料複制,從輸入流寫到輸出流中,最大支援2GB
toByteArray:從輸入流、URI擷取byte[]
write:把位元組. 字元等寫入輸出流
toInputStream:把字元轉換為輸入流
readLines:從輸入流中讀取多行資料,傳回List<String>
copyLarge:同copy,支援2GB以上資料的複制
lineIterator:從輸入流傳回一個疊代器,根據參數要求讀取的資料量,全部讀取,如果資料不夠,則失敗
二. org.apache.commons.io.FileUtils
deleteDirectory:删除檔案夾
readFileToString:以字元形式讀取檔案内容
deleteQueitly:删除檔案或檔案夾且不會抛出異常
copyFile:複制檔案
writeStringToFile:把字元寫到目标檔案,如果檔案不存在,則建立
forceMkdir:強制建立檔案夾,如果該檔案夾父級目錄不存在,則建立父級
write:把字元寫到指定檔案中
listFiles:列舉某個目錄下的檔案(根據過濾器)
copyDirectory:複制檔案夾
forceDelete:強制删除檔案
三. org.apache.commons.lang.StringUtils
isBlank:字元串是否為空 (trim後判斷)
isEmpty:字元串是否為空 (不trim并判斷)
equals:字元串是否相等
join:合并數組為單一字元串,可傳分隔符
split:分割字元串
EMPTY:傳回空字元串
trimToNull:trim後為空字元串則轉換為null
replace:替換字元串
四. org.apache.http.util.EntityUtils
toString:把Entity轉換為字元串
consume:確定Entity中的内容全部被消費。可以看到源碼裡又一次消費了Entity的内容,假如使用者沒有消費,那調用Entity時候将會把它消費掉
toByteArray:把Entity轉換為位元組流
consumeQuietly:和consume一樣,但不抛異常
getContentCharset:擷取内容的編碼
五. org.apache.commons.lang3.StringUtils
isBlank:字元串是否為空 (trim後判斷)
isEmpty:字元串是否為空 (不trim并判斷)
equals:字元串是否相等
join:合并數組為單一字元串,可傳分隔符
split:分割字元串
EMPTY:傳回空字元串
replace:替換字元串
capitalize:首字元大寫
六. org.apache.commons.io.FilenameUtils
getExtension:傳回檔案字尾名
getBaseName:傳回檔案名,不包含字尾名
getName:傳回檔案全名
concat:按指令行風格組合檔案路徑(詳見方法注釋)
removeExtension:删除字尾名
normalize:使路徑正常化
wildcardMatch:比對通配符
seperatorToUnix:路徑分隔符改成unix系統格式的,即/
getFullPath:擷取檔案路徑,不包括檔案名
isExtension:檢查檔案字尾名是不是傳入參數(List<String>)中的一個
七. org.springframework.util.StringUtils
hasText:檢查字元串中是否包含文本
hasLength:檢測字元串是否長度大于0
isEmpty:檢測字元串是否為空(若傳入為對象,則判斷對象是否為null)
commaDelimitedStringToArray:逗号分隔的String轉換為數組
collectionToDelimitedString:把集合轉為CSV格式字元串
replace 替換字元串
7. delimitedListToStringArray:相當于split
uncapitalize:首字母小寫
collectionToDelimitedCommaString:把集合轉為CSV格式字元串
tokenizeToStringArray:和split基本一樣,但能自動去掉空白的單詞
八. org.apache.commons.lang.ArrayUtils
contains:是否包含某字元串
addAll:添加整個數組
clone:克隆一個數組
isEmpty:是否空數組
add:向數組添加元素
subarray:截取數組
indexOf:查找某個元素的下标
isEquals:比較數組是否相等
toObject:基礎類型資料數組轉換為對應的Object數組
九. org.apache.commons.lang.StringEscapeUtils
參考十五:org.apache.commons.lang3.StringEscapeUtils
十. org.apache.http.client.utils.URLEncodedUtils
format:格式化參數,傳回一個HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字元串
parse:把String或者URI等轉換為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:根據條件篩選集合元素
transform:根據指定方法處理集合元素,類似List的map()
filter:過濾元素,雷瑟List的filter()
find:基本和select一樣
collect:和transform 差不多一樣,但是傳回新數組
forAllDo:調用每個元素的指定方法
isEqualCollection:判斷兩個集合是否一緻
十三. org.apache.commons.lang3.ArrayUtils
contains:是否包含某個字元串
addAll:添加整個數組
clone:克隆一個數組
isEmpty:是否空數組
add:向數組添加元素
subarray:截取數組
indexOf:查找某個元素的下标
isEquals:比較數組是否相等
toObject:基礎類型資料數組轉換為對應的Object數組
十四. org.apache.commons.beanutils.PropertyUtils
getProperty:擷取對象屬性值
setProperty:設定對象屬性值
getPropertyDiscriptor:擷取屬性描述器
isReadable:檢查屬性是否可通路
copyProperties:複制屬性值,從一個對象到另一個對象
getPropertyDiscriptors:擷取所有屬性描述器
isWriteable:檢查屬性是否可寫
getPropertyType:擷取對象屬性類型
十五. org.apache.commons.lang3.StringEscapeUtils
unescapeHtml4:轉義html
escapeHtml4:反轉義html
escapeXml:轉義xml
unescapeXml:反轉義xml
escapeJava:轉義unicode編碼
escapeEcmaScript:轉義EcmaScript字元
unescapeJava:反轉義unicode編碼
escapeJson:轉義json字元
escapeXml10:轉義Xml10
這個現在已經廢棄了,建議使用commons-text包裡面的方法。
十六. org.apache.commons.beanutils.BeanUtils
copyPeoperties:複制屬性值,從一個對象到另一個對象
getProperty:擷取對象屬性值
setProperty:設定對象屬性值
populate:根據Map給屬性複制
copyPeoperty:複制單個值,從一個對象到另一個對象
cloneBean:克隆bean執行個體
現在你隻要了解了以上16種最流行的工具類方法,你就不必要再自己寫工具類了,不必重複造輪子。大部分工具類方法通過其名字就能明白其用途,如果不清楚的,可以看下别人是怎麼用的,或者去網上查詢其用法。
另外,工具類,根據阿裡開發手冊,包名如果要使用util不能帶s,工具類命名為
XxxUtils
。
推薦:
成為架構師的十階段學習資料 Spring Boot & Cloud 最強技術教程如果對你有用,歡迎分享到朋友圈