16 個超級實用的 Java 工具類

閱讀本文大概須要 4 分鐘。
出處:alterem
juejin.im/post/5d4a25b351882505c105cc6e

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

如下工具類、方法按使用流行度排名,參考數據來源於Github上隨機選取的5萬個開源項目源碼。程序員

一. org.apache.commons.io.IOUtils

  • closeQuietly:關閉一個IO流、socket、或者selector且不拋出異常,一般放在finally塊spring

  • toString:轉換IO流、 Uri、 byte[]爲Stringapache

  • copy:IO流數據複製,從輸入流寫到輸出流中,最大支持2GBjson

  • toByteArray:從輸入流、URI獲取byte[]api

  • write:把字節. 字符等寫入輸出流數組

  • toInputStream:把字符轉換爲輸入流微信

  • readLines:從輸入流中讀取多行數據,返回List<String>app

  • copyLarge:同copy,支持2GB以上數據的複製socket

  • 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 替換字符串

  • 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。

 

·END·

程序員的成長之路

路雖遠,行則必至

本文原發於 同名微信公衆號「程序員的成長之路」,回覆「1024」你懂得,給個讚唄。

回覆 [ 520 ] 領取程序員最佳學習方式

回覆 [ 256 ] 查看 Java 程序員成長規劃

相關文章
相關標籤/搜索