hutool工具集合的基本使用
package com.exa.hutool;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.unit.DataUnit;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.apache.catalina.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
class HutoolApplicationTests {
@Test
void contextLoads() {
}
/**
* 测试Arraylist的基本使用
* contains数组中是否存在某个值
*/
@Test
public void testContains(){
String[] strings={"red","black","orange","white"};
System.out.println(ArrayUtil.contains(strings, "grey"));
System.out.println(ArrayUtil.contains(strings, "red"));
}
/**
* CollUtil
* containsAll() 一个集合是否包含另一个集合的全部元素
*/
@Test
public void testContainsAll(){
List<String> list1 = new ArrayList<>();
list1.add("str");
list1.add("a");
list1.add("b");
list1.add("c");
List<Object> list2 = new ArrayList<>();
list2.add("b");
list2.add("c");
boolean containsAll = CollUtil.containsAll(list1, list2);
System.out.println(containsAll);
}
/**
* isEmpty() 判断一个集合是不是为空
*/
@Test
public void testIsEmpty(){
List<String> list1 = new ArrayList<>();
list1.add("str");
list1.add("a");
list1.add("b");
list1.add("c");
List<String> list = new ArrayList<>();
System.out.println(CollUtil.isEmpty(list));
System.out.println(CollUtil.isEmpty(list1));
}
/**
* beginOfYear() 获取一年最开始的时间
*/
@Test
public void testBeginOfYear(){
//beginOfYear() 获取一年最开始的时间
System.out.println(DateUtil.beginOfYear(new Date()));
//beginOfMonth() 获取当前月第一天的时期
System.out.println(DateUtil.beginOfMonth(new Date()));
//beginOfDay 获取一天最开始的时间
System.out.println(DateUtil.beginOfDay(DateUtil.date()));
//betweenDay(Date beginDate, Date endDate, boolean isReset) 计算时间天数差
Date d1=new Date(2018,10,22);
Date d2=new Date(2017,10,22);
System.out.println(DateUtil.betweenDay(d1, d2, true));
//DateUnit 可以用来设置时间单位的间隔
//between(Date beginDate, Date endDate, DateUnit unit)
Date date= new Date();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Date date1=new Date();
System.out.println(DateUtil.between(date, date1, DateUnit.SECOND));
}
/**
* formatDate()获取格式化日期
*/
@Test
public void testFormatDate(){
System.out.println(DateUtil.formatDate(DateUtil.date()));
//parse() 自动识别时间格式
String dateStr = "2017-03-01";
System.out.println(DateUtil.parse(dateStr));
System.out.println("--------------------------------------");
System.out.println(DateUtil.parse(dateStr, "yyyy-MM-dd"));
}
/**
* isSameDay() 测试两个时间是否是同一天
*/
@Test
public void testIsSameDay(){
String date1="2008-05-23";
String date2="2009-05-23";
System.out.println(DateUtil.isSameDay(DateUtil.parse(date1), DateUtil.parse(date2)));
//offset() 时间偏移量
Date date = DateUtil.parse("2017-03-01 22:33:23");
//2017-03-02 22:33:23 时间偏移一天
System.out.println(DateUtil.offset(date, DateField.DAY_OF_MONTH,1));
//2017-03-03 22:33:23 时间偏移两天
System.out.println(DateUtil.offsetDay(date,2));
//2017-03-01 20:33:23 时间偏移-2小时
System.out.println(DateUtil.offsetHour(date,-2));
//昨天
System.out.println(DateUtil.yesterday());
//明天
System.out.println(DateUtil.tomorrow());
//上周
System.out.println(DateUtil.lastWeek());
//下周
System.out.println(DateUtil.nextWeek());
//上一个月
System.out.println(DateUtil.lastMonth());
//下一个月
System.out.println(DateUtil.nextMonth());
}
/**
* isDirectory() 是不是目录
*/
@Test
public void testIsDirectory(){
String path1="D:/softInstall/QQ音乐";
String path2="D:/softInstall/QQ音乐/高飞.mp3";
System.out.println(FileUtil.isDirectory(path1));
System.out.println(FileUtil.isDirectory(path2));
}
/**
* exist() 路径是否存在
*/
@Test
public void testExist(){
String path1="D:/softInstall";
String path2="D:/笔记/多线程.md";
System.out.println(FileUtil.exist(path1));//true
System.out.println(FileUtil.exist(path2));//true
}
/**
* file() 根据绝对路径或相对路径识别文件
*/
@Test
public void testFile(){
File file=FileUtil.file("D:\\c.txt");
File file2=FileUtil.file("D:\\a.txt");
System.out.println(file.exists());//false
System.out.println(file2.exists());//true
}
/**
* mkdir()创建目录
*/
@Test
public void testMkdir(){
String path="D:/testMkdir";
FileUtil.mkdir(path);
FileUtil.del(path);
}
@Test
public void testToBean(){
JSONObject jsonObject=new JSONObject();
jsonObject.set("name","dong");
jsonObject.set("sex","男");
jsonObject.set("age","18");
User user = JSONUtil.toBean(jsonObject, User.class);
System.out.println(user);
}
@Test
public void testToJsonStr(){
JSONObject jsonObject=new JSONObject();
jsonObject.set("name","dong");
jsonObject.set("sex","男");
jsonObject.set("age","18");
//{"sex":"男","name":"dong","age":"18"}
System.out.println(JSONUtil.toJsonStr(jsonObject));
}
/**
* hide() 脱敏
*/
@Test
public void testHide() {
String sfz="333212299878923098";
System.out.println(StrUtil.hide(sfz,0,5));
//结果:*****2299878923098
}
/**
* length()计算字符串的长度
*/
@Test
public void testLength(){
System.out.println(StrUtil.length("love"));//4
//相比于String.length,我们还可以这样做
System.out.println(StrUtil.length(1==1?"yes":"no"));//3
}
@Test
public void testIsNotEmpty(){
System.out.println(StrUtil.isNotEmpty(""));//false
System.out.println(StrUtil.isNotEmpty(null));//false
System.out.println(StrUtil.isNotEmpty("love"));//true
System.out.println(StrUtil.isNotEmpty(" "));//true
}
/**
* newExecutor() 获得一个新的线程池
*/
@Test
public void testExecutor(){
//初始化线程池,同时执行5个线程
ExecutorService executor = ThreadUtil.newExecutor(5);
//执行线程
executor.execute(() -> {
for (int i = 0; i < 4; i++) {
//打印当前线程名字
System.out.println("当前执行线程:" +new Thread().getName());
}
});
executor.shutdown();
}
@Test
public void testRandomUUID(){
System.out.println(UUID.randomUUID().toString());
//结果生成类似:1b473b7e-1c01-4832-9507-ddcb9eb9242f 这样的字符串
}
/**
* add()添加元素
*/
@Test
public void testAdd(){
JSONArray jsonArray=new JSONArray();
//将json对象添加到json数组,true表示按照添加时候的顺序
jsonArray.add(new JSONObject(true).set("name","dong").set("age","18"));
jsonArray.add(new JSONObject(true).set("name","sjbxsyl").set("age","28"));
jsonArray.add(new JSONObject(true).set("name","lxr").set("age","16"));
jsonArray.add(new JSONObject(true).set("name","hkmxy").set("age","12"));
System.out.println(jsonArray);
}
}