16個常用的Java工具類

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

一. org.apache.commons.io.IOUtils

  • closeQuietly:關(guān)閉一個IO流、socket、或者selector且不拋出異常,通常放在finally塊

  • toString:轉(zhuǎn)換IO流、 Uri、 byte[]為String

  • copy:IO流數(shù)據(jù)復制,從輸入流寫到輸出流中,最大支持2GB

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

  • write:把字節(jié). 字符等寫入輸出流

  • toInputStream:把字符轉(zhuǎn)換為輸入流

  • readLines:從輸入流中讀取多行數(shù)據(jù),返回List<String>

  • copyLarge:同copy,支持2GB以上數(shù)據(jù)的復制

  • lineIterator:從輸入流返回一個迭代器,根據(jù)參數(shù)要求讀取的數(shù)據(jù)量,全部讀取,如果數(shù)據(jù)不夠,則失敗

二. org.apache.commons.io.FileUtils

  • deleteDirectory:刪除文件夾

  • readFileToString:以字符形式讀取文件內(nèi)容

  • deleteQueitly:刪除文件或文件夾且不會拋出異常

  • copyFile:復制文件

  • writeStringToFile:把字符寫到目標文件,如果文件不存在,則創(chuàng)建

  • forceMkdir:強制創(chuàng)建文件夾,如果該文件夾父級目錄不存在,則創(chuàng)建父級

  • write:把字符寫到指定文件中

  • listFiles:列舉某個目錄下的文件(根據(jù)過濾器)

  • copyDirectory:復制文件夾

  • forceDelete:強制刪除文件

三. org.apache.commons.lang.StringUtils

  • isBlank:字符串是否為空 (trim后判斷)

  • isEmpty:字符串是否為空 (不trim并判斷)

  • equals:字符串是否相等

  • join:合并數(shù)組為單一字符串,可傳分隔符

  • split:分割字符串

  • EMPTY:返回空字符串

  • trimToNull:trim后為空字符串則轉(zhuǎn)換為null

  • replace:替換字符串

四. org.apache.http.util.EntityUtils

  • toString:把Entity轉(zhuǎn)換為字符串

  • consume:確保Entity中的內(nèi)容全部被消費??梢钥吹皆创a里又一次消費了Entity的內(nèi)容,假如用戶沒有消費,那調(diào)用Entity時候?qū)阉M掉

  • toByteArray:把Entity轉(zhuǎn)換為字節(jié)流

  • consumeQuietly:和consume一樣,但不拋異常

  • getContentCharset:獲取內(nèi)容的編碼

五. org.apache.commons.lang3.StringUtils

  • isBlank:字符串是否為空 (trim后判斷)

  • isEmpty:字符串是否為空 (不trim并判斷)

  • equals:字符串是否相等

  • join:合并數(shù)組為單一字符串,可傳分隔符

  • split:分割字符串

  • EMPTY:返回空字符串

  • replace:替換字符串

  • capitalize:首字符大寫

六. org.apache.commons.io.FilenameUtils

  • getExtension:返回文件后綴名

  • getBaseName:返回文件名,不包含后綴名

  • getName:返回文件全名

  • concat:按命令行風格組合文件路徑(詳見方法注釋)

  • removeExtension:刪除后綴名

  • normalize:使路徑正?;?/p>

  • wildcardMatch:匹配通配符

  • seperatorToUnix:路徑分隔符改成unix系統(tǒng)格式的,即/

  • getFullPath:獲取文件路徑,不包括文件名

  • isExtension:檢查文件后綴名是不是傳入?yún)?shù)(List<String>)中的一個

七. org.springframework.util.StringUtils

  • hasText:檢查字符串中是否包含文本

  • hasLength:檢測字符串是否長度大于0

  • isEmpty:檢測字符串是否為空(若傳入為對象,則判斷對象是否為null)

  • commaDelimitedStringToArray:逗號分隔的String轉(zhuǎn)換為數(shù)組

  • collectionToDelimitedString:把集合轉(zhuǎn)為CSV格式字符串

  • replace 替換字符串

  • delimitedListToStringArray:相當于split

  • uncapitalize:首字母小寫

  • collectionToDelimitedCommaString:把集合轉(zhuǎn)為CSV格式字符串

  • tokenizeToStringArray:和split基本一樣,但能自動去掉空白的單詞

八. org.apache.commons.lang.ArrayUtils

  • contains:是否包含某字符串

  • addAll:添加整個數(shù)組

  • clone:克隆一個數(shù)組

  • isEmpty:是否空數(shù)組

  • add:向數(shù)組添加元素

  • subarray:截取數(shù)組

  • indexOf:查找某個元素的下標

  • isEquals:比較數(shù)組是否相等

  • toObject:基礎(chǔ)類型數(shù)據(jù)數(shù)組轉(zhuǎn)換為對應的Object數(shù)組

九. org.apache.commons.lang.StringEscapeUtils

  • 參考十五:

    org.apache.commons.lang3.StringEscapeUtils

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

  • format:格式化參數(shù),返回一個HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串

  • parse:把String或者URI等轉(zhuǎn)換為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:根據(jù)條件篩選集合元素

  • transform:根據(jù)指定方法處理集合元素,類似List的map()

  • filter:過濾元素,雷瑟List的filter()

  • find:基本和select一樣

  • collect:和transform 差不多一樣,但是返回新數(shù)組

  • forAllDo:調(diào)用每個元素的指定方法

  • isEqualCollection:判斷兩個集合是否一致

十三. org.apache.commons.lang3.ArrayUtils

  • contains:是否包含某個字符串

  • addAll:添加整個數(shù)組

  • clone:克隆一個數(shù)組

  • isEmpty:是否空數(shù)組

  • add:向數(shù)組添加元素

  • subarray:截取數(shù)組

  • indexOf:查找某個元素的下標

  • isEquals:比較數(shù)組是否相等

  • toObject:基礎(chǔ)類型數(shù)據(jù)數(shù)組轉(zhuǎn)換為對應的Object數(shù)組

十四. org.apache.commons.beanutils.PropertyUtils

  • getProperty:獲取對象屬性值

  • setProperty:設(shè)置對象屬性值

  • getPropertyDiscriptor:獲取屬性描述器

  • isReadable:檢查屬性是否可訪問

  • copyProperties:復制屬性值,從一個對象到另一個對象

  • getPropertyDiscriptors:獲取所有屬性描述器

  • isWriteable:檢查屬性是否可寫

  • getPropertyType:獲取對象屬性類型

十五. org.apache.commons.lang3.StringEscapeUtils

  • unescapeHtml4:轉(zhuǎn)義html

  • escapeHtml4:反轉(zhuǎn)義html

  • escapeXml:轉(zhuǎn)義xml

  • unescapeXml:反轉(zhuǎn)義xml

  • escapeJava:轉(zhuǎn)義unicode編碼

  • escapeEcmaScript:轉(zhuǎn)義EcmaScript字符

  • unescapeJava:反轉(zhuǎn)義unicode編碼

  • escapeJson:轉(zhuǎn)義json字符

  • escapeXml10:轉(zhuǎn)義Xml10

這個現(xiàn)在已經(jīng)廢棄了,建議使用commons-text包里面的方法。

十六. org.apache.commons.beanutils.BeanUtils

  • copyPeoperties:復制屬性值,從一個對象到另一個對象

  • getProperty:獲取對象屬性值

  • setProperty:設(shè)置對象屬性值

  • populate:根據(jù)Map給屬性復制

  • copyPeoperty:復制單個值,從一個對象到另一個對象

  • cloneBean:克隆bean實例

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

另外,工具類,根據(jù)阿里開發(fā)手冊,包名如果要使用util不能帶s,工具類命名為 XxxUtils。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容