我一直在強調,“軟謀Java”不僅僅有Java最前沿技術文章分享,還有很強學習的氛圍,粉絲也很活躍,最重要的,還有優質資源,今天給大家分享一波免費乾貨資源,很全面,我將它起名爲:“架構師成長之路”

在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。以下工具類、方法按使用流行度排名,參考數據來源於Github上隨機選取的5萬個開源項目源碼。

1. org.apache.commons.io.IOUtils

closeQuietly:關閉一個IO流、socket、或者selector且不拋出異常,通常放在finally塊toString:轉換IO流、 Uri、 byte[]爲Stringcopy:IO流數據複製,從輸入流寫到輸出流中,最大支持2GBtoByteArray:從輸入流、URI獲取byte[]write:把字節. 字符等寫入輸出流toInputStream:把字符轉換爲輸入流readLines:從輸入流中讀取多行數據,返回ListcopyLarge:同copy,支持2GB以上數據的複製lineIterator:從輸入流返回一個迭代器,根據參數要求讀取的數據量,全部讀取,如果數據不夠,則失敗

2. org.apache.commons.io.FileUtils

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

3. org.apache.commons.lang.StringUtils

isBlank:字符串是否爲空 (trim後判斷)isEmpty:字符串是否爲空 (不trim並判斷)equals:字符串是否相等join:合併數組爲單一字符串,可傳分隔符split:分割字符串EMPTY:返回空字符串trimToNull:trim後爲空字符串則轉換爲nullreplace:替換字符串

4. org.apache.http.util.EntityUtils

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

5. org.apache.commons.lang3.StringUtils

isBlank:字符串是否爲空 (trim後判斷)isEmpty:字符串是否爲空 (不trim並判斷)equals:字符串是否相等join:合併數組爲單一字符串,可傳分隔符split:分割字符串EMPTY:返回空字符串replace:替換字符串capitalize:首字符大寫

6. org.apache.commons.io.FilenameUtils

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

7. org.springframework.util.StringUtils

hasText:檢查字符串中是否包含文本hasLength:檢測字符串是否長度大於0isEmpty:檢測字符串是否爲空(若傳入爲對象,則判斷對象是否爲null)commaDelimitedStringToArray:逗號分隔的String轉換爲數組collectionToDelimitedString:把集合轉爲CSV格式字符串replace 替換字符串7. delimitedListToStringArray:相當於splituncapitalize:首字母小寫collectionToDelimitedCommaString:把集合轉爲CSV格式字符串tokenizeToStringArray:和split基本一樣,但能自動去掉空白的單詞

8.org.apache.commons.lang.ArrayUtils

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

9.org.apache.commons.lang.StringEscapeUtils

參考十五:org.apache.commons.lang3.StringEscapeUtils

10.org.apache.http.client.utils.URLEncodedUtils

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

11. org.apache.commons.codec.digest.DigestUtils

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

12. org.apache.commons.collections.CollectionUtils

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

13. org.apache.commons.lang3.ArrayUtils

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

14.org.apache.commons.beanutils.PropertyUtils

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

15. org.apache.commons.lang3.StringEscapeUtils

unescapeHtml4:轉義htmlescapeHtml4:反轉義htmlescapeXml:轉義xmlunescapeXml:反轉義xmlescapeJava:轉義unicode編碼escapeEcmaScript:轉義EcmaScript字符unescapeJava:反轉義unicode編碼escapeJson:轉義json字符escapeXml10:轉義Xml10

這個現在已經廢棄了,建議使用commons-text包裏面的方法。

16.org.apache.commons.beanutils.BeanUtils

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

現在你只要瞭解了以上16種最流行的工具類方法,你就不必要再自己寫工具類了,不必重複造輪子。大部分工具類方法通過其名字就能明白其用途,如果不清楚的,可以看下別人是怎麼用的,或者去網上查詢其用法。

另外,工具類,根據阿里開發手冊,包名如果要使用util不能帶s,工具類命名爲XxxUtils。

轉發+關注,私信領取更多幹貨資料

查看原文 >>
相關文章