排名前16的Java工具類

原文:https://www.jianshu.com/p/9e937d178203

?

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



作者:Java技術棧
鏈接:https://www.jianshu.com/p/9e937d178203
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537947.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537947.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537947.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VS2012(Visual Studio 2012)官方免費中文旗艦版下載(含激活密鑰)

原文路徑&#xff1a;http://www.nocang.com/visual-studio-ultimate-2012/ vs2012旗艦版安裝激活教程 1、下載到的是ISO格式文件&#xff0c;直接解壓縮或用虛擬光驅加載運行&#xff1b;2、無所不藏推薦直接解壓縮安裝即可&#xff0c;雙擊“vs_ultimate.exe”進行安裝&#…

magic square java_測試Magic Square Java的.txt文件

我不想問&#xff0c;但我無法弄清楚這個任務&#xff0c;當我尋求幫助時&#xff0c;助教也不會。我必須從文本文件中獲取輸入&#xff0c;將文件中的整數輸入到數組列表中&#xff0c;然后測試它是否是anxn幻方。n等于數組列表長度的平方根。如果不是理想的正方形&#xff0c…

字符串拼串 能緩解我們的開發難度→!←(ε=(′ο`*)))唉,又是一個不知道該怎么寫題目的隨筆啊,頭疼)...

簡單描述&#xff1a;今天看我同事提交的代碼&#xff0c;發現一個東西&#xff0c;讓我有了一點小想法&#xff0c;是這樣的&#xff0c;他利用一個‘’無關緊要‘’的標簽屬性&#xff0c;(哈哈哈&#xff0c;也不能說人家是無關緊要的屬性了&#xff0c;暫時是無關緊要的屬性…

SQL中使用DISTINCT顯示多個字段的方法(不使用DISTINCT了)

原文連接&#xff1a; https://www.cnblogs.com/alanliu/archive/2008/02/25/1080626.html --------------------------------- 效果是DISTINCT CUS_NO,并且同時顯示CUS_NAME.SELECTCUS_NO,MIN(CUS_NAME) ASCUS1 FROMdbo.CUS GROUPBYCUS_NO

java 注釋快捷打出時間_Java快捷---自動注釋時間作者。。。

在使用Eclipse 編寫Java代碼時&#xff0c;自動生成的注釋信息都是按照預先設置好的格式生成的。修改作者、日期注釋格式&#xff1a;打開Windows->Preferences->Java->Code Style->Code Templates&#xff0c;點擊右邊窗口中的Comments&#xff0c;可以看到有很多…

016 pickle

英文也是泡菜的意思。 學完了&#xff0c;還是感覺這個模塊是蠻不錯的&#xff0c;對多數據保存到文件中&#xff0c;然后在使用的時候&#xff0c;再讀取出來&#xff0c;讓程序閑的更加優雅&#xff0c;簡潔。 一&#xff1a;介紹 1.為什么使用 在開篇已經介紹了&#xff0c;…

centos7與centos6區別

原文連接&#xff1a;https://www.cnblogs.com/bethal/p/5945026.html ---------------------------------------------------------------- CentOS 7 vs CentOS 6的不同 (1)桌面系統[CentOS6] GNOME 2.x[CentOS7] GNOME 3.x&#xff08;GNOME Shell&#xff09;(2)文件系統[…

用java編寫日歷添加窗口一角_Java 實訓4 編寫一個窗體程序顯示日歷

實訓要求&#xff1a;1.使用BorderLayout 進行總體布局2.在North 位置放置包含兩個按鈕( 上月和下月)的Panel3.在South 位置放置一個Label 用于顯示當前年份和月份4.在Center 位置放置一個顯示日歷的Panel5.顯示日歷的Panel 設置7 行7 列的GridLayout 布局&#xff0c;其中第1行…

ER圖轉換成關系模式集的規則

轉自己博客園文章 A與B1&#xff1a;1 在A表里把B表的主鍵和關系的屬性加入到A表中 或B表里把A表的主鍵和關系的屬性加入到B表中 舉例 男人表身份證號姓名年齡女人身份證號登記日期女人表身份證號姓名年齡 A與B1:N 在A表中加入B表的主鍵與關系的屬性 小米公司納稅號公司全稱…

Grafana文檔(在Centos / Redhat上安裝)

在基于RPM的Linux上安裝&#xff08;CentOS&#xff0c;Fedora&#xff0c;OpenSuse&#xff0c;RedHat&#xff09; 描述下載CentOS / Fedora / OpenSuse / Redhat Linux穩定版本x86-64CentOS / Fedora / OpenSuse / Redhat Linux穩定版本ARM64CentOS / Fedora / OpenSuse / R…

python3數字類型分為_Python初學3——數字類型及操作

一、數1.1 整數類型( 十、二、八、十六進制 )python中整數類型與數學中的整數概念一致&#xff0c;有正有負&#xff0c;取值任意。整數的表示形式&#xff1a;整數類型表示形式舉例十進制34,163,210二進制0b1101 或 0B1101八進制0o357 或 0O357十六進制0x45ac 或 0X45ac1.2 浮…

idea 2018.1 創建springboot開啟找回Run Dashboard

原文連接&#xff1a;https://www.cnblogs.com/yangtianle/p/8818255.html ---------------------------------------------------------------------------------配置方法首先找到項目中.idea文件下的workspace.xml開打接下來找到<component name"RunDashboard"&…

wepack構建工具

神TMc css重要性 程序猿 感嘆

php獲取藍湊云文件列表,php調用藍奏云下載接口

/*** package Lanzou* author Filmy* version 1.2.1* link https://mlooc.cn*/header(Access-Control-Allow-Origin:*);header(Content-Type:application/json; charsetutf-8);$url isset($_GET[url]) ? $_GET[url] : "";$pwd isset($_GET[pwd]) ? $_GET[pwd] : …

微信支付-服務端-bug排查記錄

微信支付服務端需要對微信官方的統一下單接口發送請求獲取prepayId作為app端調用支付的憑證&#xff0c;如果返回簽名錯誤&#xff0c;首先排查代碼層面的錯誤。 方法&#xff1a;使用微信官方的簽名算法檢驗。 地址&#xff1a;https://pay.weixin.qq.com/wiki/doc/api/jsapi.…

.Net Core+mySqlSugar的一些稍復雜操作

介紹一些我嘗試的mysqlSugar的數據庫操作 修改密碼 var status db.Update<Users>(new { password user.password }, it > it.username user.username); 更新數據&#xff08;防止空值一起更新&#xff09; 首先封裝一個函數&#xff08;判斷是否為空或者數值為0&a…

nginx一個server多個servername

nginx server_name 多個的話&#xff0c;空格隔開就行

php根據漢字首字母分組,利用PHP獲取漢字首字母并且分組排序詳解

前言本文主要給大家介紹了關于PHP獲取漢字首字母并分組排序的相關內容&#xff0c;因經常我們在做項目的時候&#xff0c;會有按首字母排序的需求 比如&#xff1a; 美團的城市選擇 http://www.meituan.com/index/changecity/initiative app中按字母搜索正題網上找了各種&#…

[算法總結] 13 道題搞定 BAT 面試——字符串

本文首發于我的個人博客&#xff1a;尾尾部落 1. KMP 算法 談到字符串問題&#xff0c;不得不提的就是 KMP 算法&#xff0c;它是用來解決字符串查找的問題&#xff0c;可以在一個字符串&#xff08;S&#xff09;中查找一個子串&#xff08;W&#xff09;出現的位置。KMP 算法…

Sqlserver備份存儲過程

查了網上找不到快速備份Sqlserver存儲過程的方法&#xff0c;心里想&#xff0c;如果Sqlserver不自帶這個功能&#xff0c;真是太low了。步驟1&#xff1a;打開存儲過程文件夾步驟2&#xff1a;按 F7 鍵&#xff0c;打開“對象資源管理器詳細信息”窗口步驟3&#xff1a;點擊“…