java常用的工具類/第三方類庫


java常用的工具類/第三方類庫

在開發的過程中,有些代碼直接用原生的語法寫起來比較麻煩。
多掌握一些java常用的工具類、java常用的第三方類庫,可以讓我們提高效率,代碼變得簡潔優雅。

一、apache commons-lang

apache出品,java開發者經常會用到的工具類庫。可以處理字符串、IO、集合等。

依賴:

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.12</version>
      </dependency>

StringUtils:

常用的常量:

StringUtils.EMPTY: 空字符""

處理字符串,常用的方法有

boolean isEmpty(CharSequence cs):判斷字符串是否為空,字符串為null或者字符串長度為0時返回true

boolean isBlank(CharSequence cs):判斷字符串是否為null,空字符串,空格符(空格、換行符、制表符、tab 等)

boolean isNotEmpty(CharSequence cs):判斷字符串是否不為空

boolean isNotBlank(CharSequence cs):判斷字符串是否不為null,空字符串,空格符

示例:

String name = "lin";
if (StringUtils.isNotBlank(name)) {

}

IOUtils:

用於處理IO流。

常見方法:

String toString(InputStream input): 將InputStream 流的內容,轉化為字符串。

String toString(InputStream input, String encoding):將InputStream 流的內容,按照指定的編碼,轉化為字符串。

List<String> readLines(InputStream input):將InputStream 流的內容,逐行轉化為集合

List<String> readLines(InputStream input, String encoding):將InputStream 流的內容,按照指定的編碼,逐行轉化為集合

byte[] toByteArray(InputStream input): 將InputStream 流的內容,轉化為字節數組。

FileUtils

常用方法:

String readFileToString(File file): 讀取文件的內容

List<String> readLines(File file): 逐行讀取文件的內容,返回集合。

Collection<File> listFiles(File directory, String[] extensions, boolean recursive) : 指定文件后綴如txt,遍歷文件夾中的文件。
參數extensions是文件后綴,布爾參數recursive表示是否遍歷所有的子文件夾。

writeStringToFile(File file, String data) : 清除文件原來的內容,在文件后面追加內容。

writeStringToFile(File file, String data, boolean append):布爾參數append為true時,表示不清除文件原來的內容,在文件后面追加內容。 

writeLines(File file, Collection<?> lines):清除文件原來的內容,在文件后面寫入新的內容,逐行地寫。

writeLines(File file, Collection<?> lines, boolean append):布爾參數append為true時,表示不清除文件原來的內容,在文件后面逐行追加內容,逐行地寫。 

示例:

    public static void testReadFile() throws IOException {
        //讀取文件
        String result = FileUtils.readFileToString(new File("E:\\test.txt"));
        System.out.println(result);
    }

    private static void testReadLines() throws IOException {
        //逐行讀取文件
        List<String> lines = FileUtils.readLines(new File("E:\\test.txt"));
        System.out.println(lines);
    }

    public static void testListFile() {
        // 指定文件后綴如txt,遍歷文件夾中的文件。注意,此處的test是文件夾名稱,沒有后綴。
        File directory = new File("E:\\test");
        Collection<File> files = FileUtils.listFiles(directory, new String[]{"txt"}, false);
        System.out.println(files);

    }

    public static void testWriteString() throws IOException {
        File file = new File("E:\\test.txt");
        //清除文件原來的內容,在文件中寫入新的內容。
        FileUtils.writeStringToFile(file,"testWriteString");
        String content = FileUtils.readFileToString(file);
        System.out.println(content);
    }

    public static void testWriteStringAppend() throws IOException {
        File file = new File("E:\\test.txt");
        //不清除文件原來的內容,在文件后面追加內容。
        FileUtils.writeStringToFile(file,"testWriteStringAppend", true);
        String content = FileUtils.readFileToString(file);
        System.out.println(content);
    }

    public static void testWriteLine() throws IOException {
        File file = new File("E:\\test.txt");
        // 可以一行行寫入文本
        List<String> lines = new ArrayList<>();
        lines.add("test");
        lines.add("testWriteLine");
        FileUtils.writeLines(file,lines);
        String content = FileUtils.readFileToString(file);
        System.out.println(content);
    }

    public static void testWriteLineAppend() throws IOException {
        File file = new File("E:\\test.txt");
        // 可以一行行寫入文本
        List<String> lines = new ArrayList<>();
        lines.add("test");
        lines.add("testWriteLineAppend");
        //不清除文件原來的內容,在文件后面追加內容。
        FileUtils.writeLines(file,lines, true);
        String content = FileUtils.readFileToString(file);
        System.out.println(content);
    }

二、commons-collections:

依賴:

<dependency>
	<groupId>commons-collections</groupId>
	<artifactId>commons-collections</artifactId>
	<version>3.4</version>
</dependency>

CollectionUtils

CollectionUtils類用於處理集合, 常用方法如下:

boolean isEmpty(Collection coll): 判斷集合是否為空

boolean isNotEmpty(Collection coll): 判斷集合是否不為空

int size(Object object): 計算集合的個數

示例:

List<String> list = new ArrayList<>();
int size = CollectionUtils.size(list);

if (CollectionUtils.isEmpty(list)) {
            
}

三、Objects

jdk自帶的類,用於處理對象,判空,轉換字符串等。

Objects常用方法:

String toString(Object o): 將對象轉換字符串,由於方法內使用了String.valueOf(),如果對象為 null,返回的是 "null"字符串。

String toString(Object o, String nullDefault): 將對象轉換字符串,如果對象為 null,就返回指定的默認值。

boolean isNull(Object obj): 判斷對象是否為空

boolean nonNull(Object obj): 判斷對象是否不為空

示例:

String name = Objects.toString( null , "0");
if (Objects.isNull(name)) {

}

Guava常見的代碼示例

谷歌出品的,非常實用。包含集合、並發、I/O、散列、緩存、字符串等。
詳情見: https://www.cnblogs.com/expiator/p/17347890.html

HuTool工具類:

詳情見: https://www.cnblogs.com/expiator/p/17276594.html

參考資料:

https://ifeve.com/google-guava/
https://www.techug.com/post/java-libs-you-should-know.html
https://blog.csdn.net/qq_15717719/article/details/114012722
https://juejin.cn/post/6844904154113146894


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM