首页 > 其他分享 >核心(Hutool-core)IO流相关

核心(Hutool-core)IO流相关

时间:2024-06-14 11:55:54浏览次数:21  
标签:core 针对 封装 文件 读写 Hutool IO 操作

由来
IO的操作包括读和写,应用场景包括网络操作和文件操作。IO操作在Java中是一个较为复杂的过程,我们在面对不同的场景时,要选择不同的InputStream和OutputStream实现来完成这些操作。而如果想读写字符流,还需要Reader和Writer的各种实现类。这些繁杂的实现类,一方面给我们提供了更多的灵活性,另一方面也增加了复杂性。

封装

io包的封装主要针对流、文件的读写封装,主要以工具类为主,提供常用功能的封装,这包括:

IoUtil 流操作工具类
FileUtil 文件读写和操作的工具类。
FileTypeUtil 文件类型判断工具类
WatchMonitor 目录、文件监听,封装了JDK1.7中的WatchService
ClassPathResource针对ClassPath中资源的访问封装
FileReader 封装文件读取
FileWriter 封装文件写入

流扩展

除了针对JDK的读写封装外,还针对特定环境和文件扩展了流实现。

包括:

BOMInputStream针对含有BOM头的流读取
FastByteArrayOutputStream 基于快速缓冲FastByteBuffer的OutputStream,随着数据的增长自动扩充缓冲区(from blade)
FastByteBuffer 快速缓冲,将数据存放在缓冲集中,取代以往的单一数组(from blade)

标签:core,针对,封装,文件,读写,Hutool,IO,操作
From: https://www.cnblogs.com/velloLei/p/18247551

相关文章

  • BEV感知算法---BevFusion
    前言转载自https://blog.csdn.net/qq_40672115/article/details/134891133这是一篇LiDAR和Camera融合的BEV感知算法,从算法动机&开创性思路、主体结构、损失函数以及性能对比四个方面展开。BEVFusion有两篇文章,本次课程主要讲解的是阿里和北大的:https://arxiv.org/pdf/2205.1......
  • 核心(Hutool-core)日期时间
    日期时间包是Hutool的核心包之一,提供针对JDK中Date和Calendar对象的封装,封装对象如下:日期时间工具DateUtil针对日期时间操作提供一系列静态方法DateTime提供类似于Joda-Time中日期时间对象的封装,继承自Date类,并提供更加丰富的对象方法。FastDateFormat提供线程安全的针对Da......
  • 实用软件下载:Studio One最新安装包及详细安装教程
    StudioOne6是一款功能丰富、专业级的音乐制作软件,它具备灵活的工作流程和高效的团队协作能力,能帮助用户实现高质量的音乐创作和制作。智能模板更快的启动,全新的智能模板为你手头的任务提供了必要的工具集,包括基本录制、混音词干、母带制作专辑和设置现场表演等,一键播放乐器......
  • 核心(Hutool-core)类型转换
    在Java开发中我们要面对各种各样的类型转换问题,尤其是从命令行获取的用户参数、从HttpRequest获取的Parameter等等,这些参数类型多种多样,我们怎么去转换他们呢?常用的办法是先整成String,然后调用XXX.parseXXX方法,还要承受转换失败的风险,不得不加一层trycatch,这个小小的过程混迹在业......
  • 04《android studio开发实战(第三版)》第七到十章阅读笔记
    第七章:持久化存储本章介绍了SharedPreferences的使用方法,它是一种轻量级的存储方案,用于保存简单的键值对数据,如用户设置和配置。 学习了如何创建SharedPreferences对象,使用getSharedPreferences()方法读取和写入数据,以及如何使用apply()和commit()提交修改。了解了如何在Andro......
  • Java IO流(二进制IO流、文本IO流)
    JavaIO流(Input/OutputStream)是Java中用于处理输入输出操作的一种机制。IO流可以从不同的数据源读取数据,或者将数据写入到不同的目标。根据处理的数据类型,IO流可以分为二进制IO流和文本IO流。一、二进制IO流: 二进制IO流主要用于处理非文本数据,如图片、音频、视频等。在J......
  • 【Python&RS】基于Rasterio库裁剪栅格数据&压缩栅格影像
    ​     之前分享过【Python&RS】Rasterio库安装+基础函数使用教程,大家有兴趣的可以去看看。由于最近有涉及到栅格裁剪和压缩的问题,所以研究了一下今天和大家分享分享。原创作者:RS迷途小书童博客地址:https://blog.csdn.net/m0_56729804?type=blog1需要的库imp......
  • 【开源样本库分享】Five-Billion-Pixels-ENVIFormat 五十亿像素高精度样本库分享
    很高兴给大家分享一个好消息,Five-Billion-Pixels-ENVIFormat五十亿像素开源样本库(ENVI格式)正式上线了!Five-Billion-Pixels样本库是一个为遥感、地理信息系统(GIS)和图像处理领域的研究和应用而精心打造的高质量样本库。为了让更多的人受益,我们决定制作并发布ENVI格式的五十亿像素......
  • cc2/4链:针对commons-collections4的攻击
    cc2/4是干嘛的cc2、cc4针对的commons-collections4版本大于4.0(含)入口略有不同,后续和cc3一样通过TemplatesImpl加载恶意字节码调用链PriorityQueue.readobjectPriorityQueue的反序列化方法调用了heapify()heapifyheapify()调用了siftDown可以看见元素需要大于两个,所以我们......
  • STM32学习记录(二)————基本GPIO控制
    文章目录前言1.GPIO基础知识2.IO八种工作模式3固件库实现LED点灯前言一个学习STM32的小白有问题评论区或私信指出~1.GPIO基础知识GPIO(General-Purposeinput/output,通用输入/输出接口)用于感知外部信号(输入模式)和控制外部设备(输出模式)简单模块:LED,按键,蜂......