1. 程式人生 > >常用高效 Java 工具類總結

常用高效 Java 工具類總結

一、前言

在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<String>
copyLarge:同copy,支援2GB以上資料的複製
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

作者:掘金(作者:alterem)
參考連結:https://juejin.im/post/5d4a25b351882505c105cc6e


本文在米兜公眾號連結:
https://mp.weixin.qq.com/s/OzMgSobnYoAjL4g-COs5Tw

歡迎關注米兜Java,一個注在共享、交流的Java學習平臺。

相關推薦

常用高效 Java 工具總結

一、前言 在Java中,工具類定義了一組公共方法,這篇文章將介紹Java中使用最頻繁及最通用的Java工具類。以下工具類、方法按使用流行度排名,參考資料來源於Github上隨機選取的5萬個開源專案原始碼。 二、org.apache.commons.io.IOUtils closeQuietly:關閉一個I

java(二):工作中常用到的工具

java 工具類 工作中大家要用到很多工具類,第三方的jar中有很多現成的工具類符合自己的項目需要,這個時候就不需要去重復造輪子了,從而節省了很多時間,大家可以利用這些時間去做其它重要的事情,如果沒有符合自己的工具類,這個時候就要寫自己的工具類了,下面列舉一些工作中常用的工具類。1、

整理收集的一些常用java工具(獲取異常堆疊資訊)

轉:https://blog.csdn.net/qq_22075041/article/details/77431915   1.json轉換工具 package com.taotao.utils;   import java.util.List;   im

常用Java集合總結

csdn 分布 雲服務器 href size java 最大 style ron 此文已由作者趙計剛授權網易雲社區發布。歡迎訪問網易雲社區,了解更多網易技術產品運營經驗。7.1、List(允許重復元素)ArrayList:底層數據結構:Object[]在查詢(get)、遍歷

整理收集的一些常用java工具

path pack 登錄密碼 form 字符 mapper 狀態 dos byte 1.json轉換工具 1. package com.taotao.utils; 3. import java.util.List; 5. import com.faster

JAVA常用的高階集合總結(包含Concurrent包下的併發集合)

MAP WeakHashMap 和普通的HashMap相比,當除了自身有對key的引用外,此key沒有其他引用那麼此map會自動丟棄此值,從而解決HashMap物件中key-value資源無法釋放,導

小程式開發之常用工具總結

寫之前先說一下抽取公共類注意問題 require 暫時不支援絕對路徑 一般情況下建立在utils檔案中 先說明如何抽取工具類 假設: (1)先建立公共工具類common.js 注:一般情況下建立在utils檔案 // common.js functio

[Java工具]spring常用工具 2.特殊字元轉義和方法入參檢測工具

特殊字元轉義 由於 Web 應用程式需要聯合使用到多種語言,每種語言都包含一些特殊的字元,對於動態語言或標籤式的語言而言,如果需要動態構造語言的內容時,一個我們經常會碰到的問題就是特殊字元轉義的問題。下面是 Web 開發者最常面對需要轉義的特殊字元型別: HTML 特

java reflection】反射工具總結

這段時間公司搞封閉開發,做一個聯通總部的客服系統專案,是基於springboot的。在開發工程中遇到一個頁面datagrid資料排序的功能,因為有多個表的資料都要用到排序功能,於是我就寫了一個排序功能的公共實現類,方便大家使用。在寫實現類的過程中需要通過反射去呼

java工具,在Windows,Linux系統獲取電腦的MAC地址、本地IP、電腦名

copy iter 去掉m [] equals linu stat cli catch package com.cloudssaas.util; import java.io.BufferedReader; import java.io.IOException;

Java集合總結

tree dex trac emp oat err 條件 最終 一個地方 集合類和接口之間的關系圖,能夠比較清楚的展示各個類和接口之間的關系(其中:點框為接口(...) 短橫線框為抽象類(---) 實線為類) 上圖可以看到:集合可以分成兩部分來學習。一個是以Colle

常用的日期工具

pbe minutes sse 類型 sca 格式 param gettime don 對於開發中的日期工具類進行總結: package com.yunhwa.base.util; import java.math.BigDecimal;import java.sql.

Apache下的ArrayUtils工具總結

tostring empty length contains oem 數量 main nts int ArrayUtils中的方法: 1.add():將給定的數據添加到指定的數組中,返回一個新的數組。 2.addAll():合並兩個數組。 3.contains():檢查該數

自定義的jdbc連接工具JDBCUtils【java 工具

tco 成功 val update red source dex imp 添加 JDBCUtils 類:   1. 創建私有的屬性*(連接數據庫必要的四個變量):dreiver url user password   2. 將構造函數私有化   3.將註冊驅動寫入靜態代碼塊

java工具

new style strings 數組 toarray div ngs tro ron 1.list轉化為數組 ArrayList<String> list=new ArrayList<String>(); String[] strings = n

JVM常用命令行工具學習總結

數量 class tac 對象 tails jmp mpp 無法 leak 1. 搞清楚兩個概念: 內存溢出(Out Of Memory):是指程序在申請內存時,沒有足夠的內存空間供其使用,就會出現out of memory。 內存泄露(Memory Leak)

扒一扒系列之開發中常用Java集合(ArrayList篇 jdk 1.7)

mda des obj 初始設置 onu util private 內部 會有 關於這個系列,因為開發主要用的是java語言,一直想寫寫java開發中常用的一些類(雖然這才是開始的第三篇>_<),所有就起了“扒一扒”系列。這個系列會有框架

排名前 16 的 Java 工具

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

Json序列化java工具

java對象 writev ctype imp date eval 取消 cti empty json序列化通用工具類(java)>為了支持此工具類的正常使用,先導入以下jar包 1.lombok包是一個簡化java冗余代碼的jar包,實際開發中很方便在maven的p

面試3-java集合總結(Map)

value val tree bubuko 實現 ble info 集合 dha 1.概述: Java 中的map集合使用鍵值對(key-value)來保持數據,其中值(value)可以重復,鍵(key)必須唯一,但最多只能有一個key為空,它的主要實現類有HashMap