在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。如下工具類、方法按使用流行度排名,參考數據來源於Github上隨機選取的5萬個開源項目源碼。html
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:從輸入流返回一個迭代器,根據參數要求讀取的數據量,所有讀取,若是數據不夠,則失敗
deleteDirectory:刪除文件夾 readFileToString:以字符形式讀取文件內容 deleteQueitly:刪除文件或文件夾且不會拋出異常 copyFile:複製文件 writeStringToFile:把字符寫到目標文件,若是文件不存在,則建立 forceMkdir:強制建立文件夾,若是該文件夾父級目錄不存在,則建立父級 write:把字符寫到指定文件中 listFiles:列舉某個目錄下的文件(根據過濾器) copyDirectory:複製文件夾 forceDelete:強制刪除文件
isBlank:字符串是否爲空 (trim後判斷) isEmpty:字符串是否爲空 (不trim並判斷) equals:字符串是否相等 join:合併數組爲單一字符串,可傳分隔符 split:分割字符串 EMPTY:返回空字符串 trimToNull:trim後爲空字符串則轉換爲null replace:替換字符串
toString:把Entity轉換爲字符串 consume:確保Entity中的內容所有被消費。能夠看到源碼裏又一次消費了Entity的內容,假如用戶沒有消費,那調用Entity時候將會把它消費掉 toByteArray:把Entity轉換爲字節流consumeQuietly:和consume同樣,但不拋異常 getContentCharset:獲取內容的編碼
isBlank:字符串是否爲空 (trim後判斷) isEmpty:字符串是否爲空 (不trim並判斷) equals:字符串是否相等 join:合併數組爲單一字符串,可傳分隔符 split:分割字符串 EMPTY:返回空字符串 replace:替換字符串 capitalize:首字符大寫
getExtension:返回文件後綴名 getBaseName:返回文件名,不包含後綴名 getName:返回文件全名 concat:按命令行風格組合文件路徑(詳見方法註釋) removeExtension:刪除後綴名 normalize:使路徑正常化 wildcardMatch:匹配通配符 seperatorToUnix:路徑分隔符改爲unix系統格式的,即/ getFullPath:獲取文件路徑,不包括文件名 isExtension:檢查文件後綴名是否是傳入參數(List<String>)中的一個
hasText:檢查字符串中是否包含文本 hasLength:檢測字符串是否長度大於0 isEmpty:檢測字符串是否爲空(若傳入爲對象,則判斷對象是否爲null) commaDelimitedStringToArray:逗號分隔的String轉換爲數組 collectionToDelimitedString:把集合轉爲CSV格式字符串 replace 替換字符串 7. delimitedListToStringArray:至關於split uncapitalize:首字母小寫 collectionToDelimitedCommaString:把集合轉爲CSV格式字符串 tokenizeToStringArray:和split基本同樣,但能自動去掉空白的單詞
contains:是否包含某字符串 addAll:添加整個數組 clone:克隆一個數組 isEmpty:是否空數組 add:向數組添加元素 subarray:截取數組 indexOf:查找某個元素的下標 isEquals:比較數組是否相等 toObject:基礎類型數據數組轉換爲對應的Object數組
參考十五:org.apache.commons.lang3.StringEscapeUtils
format:格式化參數,返回一個HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串 parse:把String或者URI等轉換爲List<NameValuePair>
md5Hex:MD5加密,返回32位字符串 sha1Hex:SHA-1加密 sha256Hex:SHA-256加密 sha512Hex:SHA-512加密 md5:MD5加密,返回16位字符串
isEmpty:是否爲空 select:根據條件篩選集合元素 transform:根據指定方法處理集合元素,相似List的map() filter:過濾元素,雷瑟List的filter() find:基本和select同樣 collect:和transform 差很少同樣,可是返回新數組 forAllDo:調用每一個元素的指定方法 isEqualCollection:判斷兩個集合是否一致
contains:是否包含某個字符串 addAll:添加整個數組 clone:克隆一個數組 isEmpty:是否空數組 add:向數組添加元素 subarray:截取數組 indexOf:查找某個元素的下標 isEquals:比較數組是否相等 toObject:基礎類型數據數組轉換爲對應的Object數組
getProperty:獲取對象屬性值 setProperty:設置對象屬性值 getPropertyDiscriptor:獲取屬性描述器 isReadable:檢查屬性是否可訪問 copyProperties:複製屬性值,從一個對象到另外一個對象 getPropertyDiscriptors:獲取全部屬性描述器 isWriteable:檢查屬性是否可寫 getPropertyType:獲取對象屬性類型
unescapeHtml4:轉義html escapeHtml4:反轉義html escapeXml:轉義xml unescapeXml:反轉義xml escapeJava:轉義unicode編碼 escapeEcmaScript:轉義EcmaScript字符 unescapeJava:反轉義unicode編碼 escapeJson:轉義json字符 escapeXml10:轉義Xml10
這個如今已經廢棄了,建議使用commons-text包裏面的方法。spring
copyPeoperties:複製屬性值,從一個對象到另外一個對象 getProperty:獲取對象屬性值 setProperty:設置對象屬性值 populate:根據Map給屬性複製 copyPeoperty:複製單個值,從一個對象到另外一個對象 cloneBean:克隆bean實例
如今你只要瞭解了以上16種最流行的工具類方法,你就沒必要要再本身寫工具類了,沒必要重複造輪子。大部分工具類方法經過其名字就能明白其用途,若是不清楚的,能夠看下別人是怎麼用的,或者去網上查詢其用法。sql
另外,工具類,根據阿里開發手冊,包名若是要使用util不能帶s,工具類命名爲 XxxUtils。
以爲文章不錯就給小老弟點個關注吧,更多內容陸續奉上。apache
歡迎工做一到五年的Java工程師朋友們加入個人我的粉絲羣(Java架構技術棧:644872653)羣內提供免費的Java架構學習資料(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)json
合理利用本身每一分每一秒的時間來學習提高本身,不要再用"沒有時間「來掩飾本身思想上的懶惰!趁年輕,使勁拼,給將來的本身一個交代!api