随笔分类 -  java / hutool工具

hutool工具
摘要:资源(Resource)在Hutool中是一个广泛的概念,凡是存储数据的地方都可以归类到资源,那为何要提供一个如此抽象的接口呢? 在实际编码当中,我们需要读取一些数据,比如配置文件、文本内容、图片甚至是任何二进制流,为此我们要加入很多的重载方法,比如: read(File file){...} re 阅读全文
posted @ 2024-06-14 15:18 vello 阅读(36) 评论(0) 推荐(0) 编辑
摘要:文件名操作工具类,主要针对文件名获取主文件名、扩展名等操作,同时针对Windows平台,清理无效字符。 此工具类在5.4.1之前是FileUtil的一部分,后单独剥离为FileNameUtil工具。 使用 获取文件名 File file = FileUtil.file("/opt/test.txt" 阅读全文
posted @ 2024-06-14 15:17 vello 阅读(126) 评论(0) 推荐(0) 编辑
摘要:有时候我们要启动一个线程实时“监控”文件的变化,比如有新内容写出到文件时,我们可以及时打印出来,这个功能非常类似于Linux下的tail -f命令。 使用 Tailer tailer = new Tailer(FileUtil.file("f:/test/test.log"), Tailer.CON 阅读全文
posted @ 2024-06-14 14:27 vello 阅读(30) 评论(0) 推荐(0) 编辑
摘要:顾名思义,FileAppender类表示文件追加器。此对象持有一个文件,在内存中积累一定量的数据后统一追加到文件,此类只有在写入文件时打开文件,并在写入结束后关闭之。因此此类不需要关闭。 在调用append方法后会缓存于内存,只有超过容量后才会一次性写入文件,因此内存中随时有剩余未写入文件的内容,在 阅读全文
posted @ 2024-06-14 14:26 vello 阅读(94) 评论(0) 推荐(0) 编辑
摘要:相应的,文件读取有了,自然有文件写入类,使用方式与FileReader也类似: FileWriter writer = new FileWriter("test.properties"); writer.write("test"); 写入文件分为追加模式和覆盖模式两类,追加模式可以用append方法 阅读全文
posted @ 2024-06-14 14:13 vello 阅读(137) 评论(0) 推荐(0) 编辑
摘要:使用 在JDK中,同样有一个FileReader类,但是并不如想象中的那样好用,于是Hutool便提供了更加便捷的FileReader类。 //默认UTF-8编码,可以在构造中传入第二个参数做为编码 FileReader fileReader = new FileReader("test.prope 阅读全文
posted @ 2024-06-14 14:12 vello 阅读(59) 评论(0) 推荐(0) 编辑
摘要:使用 这个工具类使用非常简单,通过调用FileTypeUtil.getType即可判断,这个方法同时提供众多的重载方法,用于读取不同的文件和流。 File file = FileUtil.file("d:/test.jpg"); String type = FileTypeUtil.getType( 阅读全文
posted @ 2024-06-14 14:12 vello 阅读(255) 评论(0) 推荐(0) 编辑
摘要:很多时候我们需要监听一个文件的变化或者目录的变动,包括文件的创建、修改、删除,以及目录下文件的创建、修改和删除,在JDK7前我们只能靠轮询方式遍历目录或者定时检查文件的修改事件,这样效率非常低,性能也很差。因此在JDK7中引入了WatchService。不过考虑到其API并不友好,于是Hutool便 阅读全文
posted @ 2024-06-14 11:54 vello 阅读(204) 评论(0) 推荐(0) 编辑
摘要:在IO操作中,文件的操作相对来说是比较复杂的,但也是使用频率最高的部分,我们几乎所有的项目中都躺着一个叫做FileUtil或者FileUtils的工具类,我想Hutool应该将这个工具类纳入其中,用来解决大部分的文件操作问题。 总体来说,FileUtil类包含以下几类操作工具: 文件操作:包括文件目 阅读全文
posted @ 2024-06-14 11:54 vello 阅读(168) 评论(0) 推荐(0) 编辑
摘要:方法 拷贝 流的读写可以总结为从输入流读取,从输出流写出,这个过程我们定义为拷贝。这是一个基本过程,也是文件、流操作的基础。 以文件流拷贝为例: BufferedInputStream in = FileUtil.getInputStream("d:/test.txt"); BufferedOutp 阅读全文
posted @ 2024-06-14 11:44 vello 阅读(232) 评论(0) 推荐(0) 编辑
摘要:由来 IO的操作包括读和写,应用场景包括网络操作和文件操作。IO操作在Java中是一个较为复杂的过程,我们在面对不同的场景时,要选择不同的InputStream和OutputStream实现来完成这些操作。而如果想读写字符流,还需要Reader和Writer的各种实现类。这些繁杂的实现类,一方面给我 阅读全文
posted @ 2024-06-14 11:43 vello 阅读(14) 评论(0) 推荐(0) 编辑
摘要:Hutool通过封装TimeInterval实现计时器功能,即可以计算方法或过程执行的时间。 TimeInterval支持分组计时,方便对比时间。 使用 TimeInterval timer = DateUtil.timer(); // // 这是执行过程 // timer.interval();/ 阅读全文
posted @ 2024-06-14 11:42 vello 阅读(222) 评论(0) 推荐(0) 编辑
摘要:介绍 从Hutool的5.4.x开始,Hutool加入了针对JDK8+日期API的封装,此工具类的功能包括LocalDateTime和LocalDate的解析、格式化、转换等操作。 使用 日期转换 String dateStr = "2020-01-23T12:23:56"; DateTime dt 阅读全文
posted @ 2024-06-14 11:36 vello 阅读(69) 评论(0) 推荐(0) 编辑
摘要:介绍 农历日期,提供了生肖、天干地支、传统节日等方法。 使用 构建ChineseDate对象 ChineseDate表示了农历的对象,构建此对象既可以使用公历的日期,也可以使用农历的日期。 //通过农历构建 ChineseDate chineseDate = new ChineseDate(1992 阅读全文
posted @ 2024-06-14 11:34 vello 阅读(100) 评论(0) 推荐(0) 编辑
摘要:考虑到Java本身对日期时间的支持有限,并且Date和Calendar对象的并存导致各种方法使用混乱和复杂,故使用此工具类做了封装。这其中的封装主要是日期和字符串之间的转换,以及提供对日期的定位(一个月前等等)。 对于Date对象,为了便捷,使用了一个DateTime类来代替之,继承自Date对象, 阅读全文
posted @ 2024-06-14 11:32 vello 阅读(159) 评论(0) 推荐(0) 编辑
摘要:日期时间包是Hutool的核心包之一,提供针对JDK中Date和Calendar对象的封装,封装对象如下: 日期时间工具 DateUtil 针对日期时间操作提供一系列静态方法 DateTime 提供类似于Joda-Time中日期时间对象的封装,继承自Date类,并提供更加丰富的对象方法。 FastD 阅读全文
posted @ 2024-06-14 11:30 vello 阅读(86) 评论(0) 推荐(0) 编辑
摘要:在Java开发中我们要面对各种各样的类型转换问题,尤其是从命令行获取的用户参数、从HttpRequest获取的Parameter等等,这些参数类型多种多样,我们怎么去转换他们呢?常用的办法是先整成String,然后调用XXX.parseXXX方法,还要承受转换失败的风险,不得不加一层try catc 阅读全文
posted @ 2024-06-14 11:07 vello 阅读(168) 评论(0) 推荐(0) 编辑
摘要:解决什么问题 我们知道,JDK中的Cloneable接口只是一个空接口,并没有定义成员,它存在的意义仅仅是指明一个类的实例化对象支持位复制(就是对象克隆),如果不实现这个类,调用对象的clone()方法就会抛出CloneNotSupportedException异常。而且,因为clone()方法在O 阅读全文
posted @ 2024-06-14 11:01 vello 阅读(58) 评论(0) 推荐(0) 编辑