使用這些高效Java工具類享受開發樂趣

使用這些高效Java工具類享受開發樂趣

導語

在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。

在開發中,使用這些工具類,不僅可以提高編碼效率,還可以提高代碼可讀性。

一,org.apache.commons.lang.StringUtils

isBlank:字符串是否爲空 (trim後判斷)
isEmpty:字符串是否爲空 (不trim並判斷)
equals:字符串是否相等
join:合併數組爲單一字符串,可傳分隔符
split:分割字符串
EMPTY:返回空字符串
trimToNull:trim後爲空字符串則轉換爲null
replace:替換字符串
deleteWhitespace:刪除空白
lowerCase:改變字符串中的大寫字母變小寫
upperCase:所有引文小寫轉大寫
remove:刪除當前字符串的某一段
repeat:重複多少次

二,org.apache.commons.collections.CollectionUtils

isEmpty:是否爲空
select:根據條件篩選集合元素
transform:根據指定方法處理集合元素,類似List的map()
filter:過濾元素,類似List的filter()
find:基本和select一樣
collect:和transform 差不多一樣,但是返回新數組
forAllDo:調用每個元素的指定方法
isEqualCollection:判斷兩個集合是否一致

三,org.apache.commons.io.FileUtils

deleteDirectory:刪除文件夾
readFileToString:以字符形式讀取文件內容
deleteQueitly:刪除文件或文件夾且不會拋出異常
copyFile:複製文件
writeStringToFile:把字符寫到目標文件,如果文件不存在,則創建
forceMkdir:強制創建文件夾,如果該文件夾父級目錄不存在,則創建父級
write:把字符寫到指定文件中
listFiles:列舉某個目錄下的文件(根據過濾器)
copyDirectory:複製文件夾
forceDelete:強制刪除文件

四,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.beanutils.BeanUtils

copyPeoperties:複製屬性值,從一個對象到另一個對象
getProperty:獲取對象屬性值
setProperty:設置對象屬性值
populate:根據Map給屬性複製
copyPeoperty:複製單個值,從一個對象到另一個對象
cloneBean:克隆bean實例

六,org.apache.commons.codec.digest.DigestUtils

md5Hex:MD5加密,返回32位字符串
sha1Hex:SHA-1加密
sha256Hex:SHA-256加密
sha512Hex:SHA-512加密
md5:MD5加密,返回16位字符串

七,org.apache.commons.lang.ArrayUtils

contains:是否包含某字符串
addAll:添加整個數組
clone:克隆一個數組
isEmpty:是否空數組
add:向數組添加元素
subarray:截取數組
indexOf:查找某個元素的下標
isEquals:比較數組是否相等
toObject:基礎類型數據數組轉換爲對應的Object數組

八,org.apache.commons.io.FilenameUtils

getExtension:返回文件後綴名
getBaseName:返回文件名,不包含後綴名
getName:返回文件全名
concat:按命令行風格組合文件路徑(詳見方法註釋)
removeExtension:刪除後綴名
normalize:使路徑正常化
wildcardMatch:匹配通配符
seperatorToUnix:路徑分隔符改成unix系統格式的,即/
getFullPath:獲取文件路徑,不包括文件名
isExtension:檢查文件後綴名是不是傳入參數(List<String>)中的一個

九,org.apache.commons.lang3.StringEscapeUtils

unescapeHtml:轉義html
escapeHtml:反轉義html
escapeXml:轉義xml
unescapeXml:反轉義xml
escapeJava:轉義unicode編碼
escapeEcmaScript:轉義EcmaScript字符
unescapeJava:反轉義unicode編碼
escapeJson:轉義json字符

十,org.apache.commons.beanutils.PropertyUtils

getProperty:獲取對象屬性值
setProperty:設置對象屬性值
getPropertyDiscriptor:獲取屬性描述器
isReadable:檢查屬性是否可訪問
copyProperties:複製屬性值,從一個對象到另一個對象
getPropertyDiscriptors:獲取所有屬性描述器
isWriteable:檢查屬性是否可寫
getPropertyType:獲取對象屬性類型

十一,org.apache.http.client.utils.URLEncodedUtils

format:格式化參數,返回一個HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串
parse:把String或者URI等轉換爲List<NameValuePair>

十二,org.apache.http.util.EntityUtils

toString:把Entity轉換爲字符串
consume:確保Entity中的內容全部被消費。可以看到源碼裏又一次消費了Entity的內容,假如用戶沒有消費,那調用Entity時候將會把它消費掉
toByteArray:把Entity轉換爲字節流
consumeQuietly:和consume一樣,但不拋異常
getContentCharset:獲取內容的編碼

小結

本篇文章介紹了十二種常用的、高效的Java工具類,能用這些工具類,就儘量不要手寫工具類。由於純手打,難免會有紕漏,如果發現錯誤的地方,請第一時間告訴我,這將是我進步的一個很重要的環節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章