Java互联网架构大数据使用开源工具类来实现这些逻辑了,它不香吗( 二 )


实例代码如下:String[] array = new String[]{"test", "1234", "5678"};List
list=new ArrayList
LocalDateTime 这里指定使用当前系统默认时区LocalDateTime localDateTime = now.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();// LocalDateTime------> Date 这里指定使用当前系统默认时区Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
接下来我们使用 LocalDateTime 进行字符串格式化 。 // 按照 yyyy-MM-dd HH:mm:ss 转化时间LocalDateTime dateTime = LocalDateTime.parse("2020-05-07 22:34:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));// 将 LocalDateTime 格式化字符串String format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(dateTime);
另外我们使用 LocalDateTime 获取当前时间年份 , 月份特别简单:LocalDateTime now = LocalDateTime.now();// 年int year = now.getYear();// 月int month = now.getMonthValue();// 日int day = now.getDayOfMonth();
最后我们还可以使用 LocalDateTime 进行日期加减 , 获取下一天的时间:LocalDateTime now = LocalDateTime.now();// 当前时间加一天LocalDateTime plusDays = now.plusDays(1l);// 当前时间减一个小时LocalDateTime minusHours = now.minusHours(1l);// 还有很多其他方法
总之 JDK8 提供的时间类非常好用 , 还没用过小伙伴 , 可以尝试下 。 集合/数组相关
集合与数组我们日常也需要经常使用 , 也需要对其进行判空:if (null == list || list.isEmpty()) {}ps: 数组、Map 集合与其类似
上面代码如字符串判空一样写起来都非常简单 , 但是也比较容易写出会抛出空指针异常的代码 。 这里我们可以使用 commons-collections 提供工具类 。
pom 信息:
org.apache.commons
commons-collections4
4.4
ps: 还有一个低版本的, artifactId 为 commons-collections
我们可以使用 CollectionUtils/MapUtils进行判空判断 。 // List/Set 集合判空if(CollectionUtils.isEmpty(list)){}// Map 等集合进行判空if (MapUtils.isEmpty(map)) {}
至于数组判空判断需要使用 commons-lang 下的 ArrayUtils进行判断:// 数组判空if (ArrayUtils.isEmpty(array)) {
除此之外还有一些列的对于集合增强方法 , 比如快速将数组加入到现有集合中:List
listA = new ArrayList<>();listA.add("1");listA.add("2");listA.add("3");String[] arrays = new String[]{"a", "b", "c"};CollectionUtils.addAll(listA, arrays);
其他方法感兴趣同学可以再自行研究下 , 另外 Guava 中也有提供对于集合的操作增强类 Lists/Maps,这个可以看下小编之前写的:老司机小编带你玩转 Guava 集合类 。 I/O 相关
JDK 有提供一系列的类可以读取文件等 , 不过小编觉得那些类有些晦涩难懂 , 实现一个小功能可能还要写好多代码 , 而且还不一定能写对 。
小编推荐一下 Apache 提供的 commons-io 库 , 增强 I/O 操作 , 简化操作难度 。 pom 信息:
commons-io
commons-io
2.6
FileUtils-文件操作工具类
文件操作工具类提供一系列方法 , 可以让我们快速读取写入文件 。
快速实现文件/文件夹拷贝操作 ,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);


推荐阅读