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
