日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

常用的 Java 工具类之 Apache 全家桶使用

發(fā)布時間:2023/12/6 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常用的 Java 工具类之 Apache 全家桶使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

平常我們在日常的開發(fā)中會一些通用的功能封裝成一些工具類,以便之后復用。但是有些常用功能,業(yè)界已經(jīng)存在,我們無需造輪子,只需直接使用或借用它們的 Api ,構(gòu)建我們的自己項目中工具類。這篇首先介紹平常用到的 Apache 工具全家桶。

  • commons-lang3
  • commons-io
  • commons-collections

commons-lang3

The standard Java libraries fail to provide enough methods for manipulation of its core classes. Apache Commons Lang provides these extra methods.

正如 Apache 官方介紹,這個包主要擴展 java.lang 下核心類的方法,提供工具類方便我們平常 java.lang 下面的類,如 String , Date。以下介紹其常用的方法。

StringUtils

字符串相關(guān)操作,擴展 String 相關(guān)方法,可以使我們方便處理字符串,滿足我們的日常使用。

StringUtils.isBlank || StringUtils.isEmpty 判斷字符串是否為空

// 兩者都可以用于判斷字符串是為空 isBlank 主要用于判斷空白字符串 空字符("") 以及Null 而 isEmpty 主要用于判斷空字符("")以及Null StringUtils.isBlank(" ") = true StringUtils.isEmpty(" ") = false 復制代碼

StringUtils.countMatches 用于計數(shù)匹配上字符的數(shù)量

StringUtils.countMatches("abba", "a") = 2 復制代碼

StringUtils.defaultIfEmpty 用于當字符串為空時,設(shè)置默認字符串

StringUtils.defaultIfEmpty("", "NULL") = "NULL" 復制代碼

StringUtils.equalsIgnoreCase StringUtils.equals 用于判斷字符串是否相等,前者忽略大小寫

StringUtils.equals("abc", "abc") = true StringUtils.equalsIgnoreCase("abc", "ABC") = true // 推薦使用該方法比較字符串,如果使用 a.equals(b),必須確保 a!=null StringUtils.equals(null, "abc") = false 復制代碼

StringUtils.join 字符串連接函數(shù),可以將字符串數(shù)組或集合,按照指定字符連接

// 碰到這種需要固定分隔符拼接的情況,可以使用該函數(shù),以免我們寫一大串函數(shù)循環(huán)拼接 StringUtils.join(["a", "b", "c"], ';') = "a;b;c" 復制代碼

StringUtils.split 說完拼接,必定會有按照固定分隔符拆分的情況

// split 分隔后會忽略為空的字符 如果不能忽略的話 使用 splitPreserveAllTokens StringUtils.split("ab::ef", ":") = ["ab", "ef"] StringUtils.splitPreserveAllTokens("ab::ef",":")=["ab", "", "ef"] 復制代碼

ArrayUtils

由于平常工作中習慣用集合代替數(shù)組對象,所以沒有經(jīng)常使用該類。

ArrayUtils.isEmpty 判斷數(shù)組是否為空

int[] a = new int[5]; ArrayUtils.isEmpty(a)=true 復制代碼

DateFormatUtils

將時間按照指定格式輸出

DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss" //2018-05-27 16:32:51 復制代碼

DateUtils

該類可以將時間按照格式解析成 Date 類型,還可以用于時間計算

DateUtils.parseDate 按照格式轉(zhuǎn)化成 Date 類型

DateUtils.parseDate("2018-05-27 16:32:51","yyyy-MM-dd HH:mm:ss") // 將字符串轉(zhuǎn)化成 Date 對象 復制代碼

DateUtils.addDays addHours addMinutes 用于在指定 Date 加上相應時間,如想獲取當前時間20天后的日期,就就可以使用 DateUtils.addDays。

Date date=DateUtils.parseDate("2018-05-27 16:32:51","yyyy-MM-dd HH:mm:ss"); DateUtils.addDays(date,1);// date 為:2018-05-28 16:32:51 DateUtils.addHours(date,1)// date 為:2018-05-28 17:32:51 復制代碼

DateUtils.truncate 按照指定時間類型截斷時間

Date date=DateUtils.parseDate("2018-05-27 16:32:51","yyyy-MM-dd HH:mm:ss"); DateUtils.truncate(date, Calendar.DATE);// 2018-05-27 00:00:00 DateUtils.truncate(date, Calendar.HOUR);// 2018-05-27 16:00:00 // 如果按照 Date 截斷時間,那么 Date 后面小時,分鐘等全部置為0,相當于舍棄了 Date 之后的時間。 復制代碼

commons-io

Commons IO is a library of utilities to assist with developing IO functionality.

主要包含一些 IO 相關(guān)的工具類,可以簡化處理文件相關(guān)操作

FileUtils

文件操作相關(guān)工具類

FileUtils.copyDirectory || FileUtils.copyFile 拷貝文件夾或文件

// 拷貝文件 File fileA = new File("E:\\test\\test.txt"); File fileB = new File("E:\\test1\\test.txt"); FileUtils.copyFile(fileA,fileB); 復制代碼

FileUtils.listFiles 獲取指定文件夾上所有文件

// 按照指定文件后綴如java,txt等去查找指定文件夾的文件 File directory = new File("E:\\test"); FileUtils.listFiles(directory, new String[]{"txt"}, false); 復制代碼

FileUtils.readLines 讀取文件所有行

// 讀取指定文件所有行 不需要使用 while 循環(huán)讀取流了 List<String> lines = FileUtils.readLines(fileA) 復制代碼

FileUtils.writeLines 有讀就存在寫,該方法可以一行行寫入文本

// 可以一行行寫入文本 List<String> lines = new ArrayList<>(); ..... FileUtils.writeLines(lines) 復制代碼

IOUtils

Io 操作相關(guān),FileUtils 很多方法底層調(diào)用的是該類的方法

IOUtils.toString 將輸入流轉(zhuǎn)化為指定編碼格式的字符串,該方法非常使用與 http 異步回調(diào)的場景

// 獲取 http 異步回調(diào)的報文 String resMsg = IOUtils.toString(request.getInputStream()); 復制代碼

IOUtils.toByteArray 將輸入流轉(zhuǎn)化為 byte 數(shù)組

// 獲取 http 異步回調(diào)的報文 byte[] b = IOUtils.toByteArray(request.getInputStream()); 復制代碼

IOUtils.closeQuietly 關(guān)閉流,不需要在關(guān)閉前寫判斷和try-catch語句,commons-io 2.6 該方法已被 Deprecated , 官方推薦使用 JDK7 try-with-resources 關(guān)閉。注: 該方法如果在輸入流等 close 時,若產(chǎn)生 Exception ,異常將會被該方法吞掉。

FilenameUtils

在處理一些文件路徑問題時,如果我們代碼開發(fā)在 Windows 平臺,部署卻是在 Linux 平臺,這個時候我們必須考慮平臺分隔符問題。FilenameUtils 解決了平臺問題,不用擔心平臺系統(tǒng)問題,導致的bug。

FilenameUtils.getBaseName 獲取文件名字,去除前綴加擴展名 FilenameUtils.getExtension 獲取文件擴展名,去除路徑以及文件名 FilenameUtils.getName 獲取文件全名,去除路徑

FilenameUtils.getBaseName("E:\\test\\test.txt")//test FilenameUtils.getExtension("E:\\test\\test.txt")//txt FilenameUtils.getName("E:\\test\\test.txt")// test.txt 復制代碼

FilenameUtils.concat 文件路徑拼接,不用擔心文件的分隔符

FilenameUtils.concat("E:\\test", "test.txt");//E:\test\test.txt 復制代碼

commons-collections

The Java Collections Framework was a major addition in JDK 1.2. It added many powerful data structures that accelerate development of most significant Java applications. Since that time it has become the recognised standard for collection handling in Java

commons-collections 主要增強 java Collections 功能

CollectionUtils

為 Collection 實例提供工具方法

CollectionUtils.addAll 可以將數(shù)組,集合加入到指定集合,解決需要將數(shù)組加入到集合中情況

List<String> listA = new ArrayList<>(); listA.add("1"); listA.add("2"); listA.add("3"); String[] arrays = new String[]{"a", "b", "c"}; CollectionUtils.addAll(listA, arrays); 復制代碼

CollectionUtils.isEmpty CollectionUtils.isNotEmpty 快捷判斷集合是否為空

總結(jié)

以上是生活随笔為你收集整理的常用的 Java 工具类之 Apache 全家桶使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。