16 個超級實用的 Java 工具類

原文鏈接:https://juejin.im/post/5d4a25b351882505c105cc6e

在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
  • copyLarge: 同copy,支持2GB以上數據的複製
  • lineIterator: 從輸入流返回一個迭代器,根據參數要求讀取的數據量,全部讀取,如果數據不夠,則失敗

 

org.apache.commons.io.FileUtils

  • deletebDirectory: 刪除文件夾
  • 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)中的一個

 

org.springframework.util.StringUtils

  • hasText: 檢查字符串中是否包含文本
  • hasLength: 檢測字符串是否長度大於0
  • isEmpty: 檢測字符串是否爲空(若傳入爲對象,則判斷對象是否爲null)
  • commaDelimitedStringToArray: 逗號分隔的String轉換爲數組
  • collectionToDelimitedString: 把集合轉爲CSV格式字符串
  • replace: 替換字符串
  • 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

 

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

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