Jakartase_IO流_ — Commons IO_(IO流终极篇)
一、前言
Apache Commons IO是Apache基金会创建并维护的Java函数库。
它提供了许多类使得开发者的常见任务变得简单,同时减少重复代码
二、Commons IO 类库
2.1 FileUtils 文件操作工具类
提供方法
- 复制文件夹
- 复制文件
- 下载文件
- 把字符串写入文件
- 把字节数组写入文件
- 把集合里面的内容写入文件
- 往文件里面写内容
- 文件移动
- 清空和删除文件夹
- 创建文件夹
- 文件获取输入/输出流
- 读取文件
- 测试两个文件的修改时间那个比较新/老
- 其他
2.2 IOUtils 流操作工具类(功能、方法、demo)
2.2.1 功能:提供用于读取,写入和复制文件的实用方法。 这些方法适用于InputStream,OutputStream,Reader和Writer。
2.2.2 方法
...为输入/输出操作提供静态实用程序方法。toXXX() - 从流中读取数据。
write() - 将数据写入流。
copy() - 将所有数据复制到另一个流的流。
contentEquals - 比较两个流的内容。
2.2.3 demo
//方式1:使用缓冲读取器逐行读取文件
public static void readUsingTraditionalWay() throws IOException {
try(BufferedReader bufferReader =
new BufferedReader( new InputStreamReader(
new FileInputStream("data.txt") ) )) {
String line;
while(( line = bufferReader.readLine()) != null )
System.out.println( line );
}
//方式2:使用IOUtils一次读取文件
public static void readUsingIOUtils() throws IOException {
try(InputStream is = new FileInputStream("data.txt")) {
System.out.println(IOUtils.toString(is, "UTF-8") );
}
}
三、IO流总结
1、按流的划分
- 输入流:数据源到程序(InputStream、Reader读进来)
- 输出流:程序到目的地(OutPutStream、Writer写出去)
2、按流的处理的数据单元分类
- 字节流:按照字节读取数据(InputStream、OutputStream)。
- 字符流:按照字符读取数据(Reader、Writer)。
3、 按流的功能分类:
- 节点流:可以直接从数据源或目的地读写数据。
- 处理流:不直接连接到数据源或目的地,是处理流的流。通过对其他流的处理提高程序的性能
4、 IO的四个基本抽象类:
- InputStream、OutputStream、Reader、Writer
5、InputStream的实现类:
- FileInputStream
- ByteArrayInutStream
- BufferedInputStream
- DataInputStream
- ObjectInputStream
** 6、 OutputStream的实现类:** - FileOutputStream
- ByteArrayOutputStream
- BufferedOutputStream
- DataOutputStream
- ObjectOutputStream
- PrintStream
7、 Reader的实现类
- FileReader
- BufferedReader
- InputStreamReader
8、 Writer的实现类
- FileWriter
- BufferedWriter
- OutputStreamWriter
9、 序列化
- 把Java对象转换为字节序列的过程。
10、反序列化
- 字节序列恢复为Java对象的过程。
Jakartase_IO流_ — Commons IO_(IO流终极篇)的更多相关文章
- 今天谈谈流,什么是IO流?
无标题 (5) :first-child { margin-top: 0; } blockquote > :last-child { margin-bottom: 0; } img { bord ...
- JavaIO 流(1)IO流介绍
IO流定义: 流的本质是一组单向有序,分起始和终止的数据传输过程.需要导入import java.io.* IO流分类: 按数据类型分为:字节流和字符流 字节流: 按字节进行读取(可以处理任意类型数据 ...
- 09、IO流—File类与IO流
目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三.节 ...
- Java基础知识强化之IO流笔记42:IO流总结(图解)
1. IO流总结(图解)
- Java基础知识强化之IO流笔记16:IO流的概述和分类
1. IO流的分类 流向: (1)输入流:读取数据到内存 (2)输出流:写入数据到硬盘(磁盘) 操作的数据类型: (1)字节流:操作的数据是字节 ...
- java基础之io流总结一:io流概述
IO流概念: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.io流是实现输入和输出的基础,可以方便的实现数据的输入和输出操作. IO流的分类: 根据处理数据类型的不同分为:字符流 ...
- java IO流 (二) IO流概述
1.流的分类* 1.操作数据单位:字节流.字符流* 2.数据的流向:输入流.输出流* 3.流的角色:节点流.处理流 图示: 2.流的体系结构 说明:红框对应的是IO流中的4个抽象基类.蓝框的流需要大家 ...
- File类与常用IO流第三章IO流概述
一:以内存为基准,按照数据的流动方向,流向内存为输入(读取数据),流出内存为输出.IO流有四大顶级父类: IO流四大顶级父类 输入流 输出流 字节流 字节输入流 InputStream 字节输出流 ...
- Java基础知识强化之IO流笔记45:IO流练习之 把集合中的数据存储到文本文件案例
1. 把集合中的数据存储到文本文件案例: 需求:把ArrayList集合中的字符串数据存储到文本文件 ? (1)分析:通过题目的意思我们可以知道如下的一些内容,ArrayList集合里存储的是字 ...
随机推荐
- Linux 资源监控与性能测试
综合管理 glances 系统情况监控 vmstat 能看到上下文切换,runnable进程个数,uninterrupted进程个数 磁盘IO iostat是磁盘级别监控,iotop进程级别监控,注意 ...
- 你竟然不知道Java中可以用 :: 吗?
简介 Java8中方法引用分为三种,方法引用通过一对双冒号:: 来表示,方法引用是一种函数式接口的另一种书写方式 静态方法引用,通过类名::静态方法名, 如 Integer::parseInt 实例方 ...
- 01.arduino uno开发板入门
01.所需工具 -Ariduino uno开发板一块 -对应的usb数据线 -杜邦线若干 -一些用以测试的电子元器件 02.安装arduino IDE 打开官网链接https://www.arduin ...
- seo兼职顾问多少钱
http://www.wocaoseo.com/thread-199-1-1.html 随着近几年搜索引挚市场迅猛的发展,网络营销已成为企业销售的一大趋势,越来越多的企业开始投身于网络市 ...
- File类 -《学堂在线》
File类的作用 ·创建.删除文件: ·重命名文件:判断文件的读写权限及是否存在: ·设置和查询文件的最近修改时间等: ·构造文件流可以使用File类的对象作为参数. //: FileTester.j ...
- 使用rabbitmq过程中遇到的问题及解决方法记录。
OS: Linux ---Centos7RabbitMQ版本:RabbitMQ version: 3.8.1erlang版本:Erlang configuration: Erlang/OTP 22 [ ...
- 使用powershell完成定时get任务
最近公司网站需要在后台定时请求和更新数据,但PHP毕竟是一种后端语言,不能自动运行,所以整理了几个方法. 1.在前端定时请求页面. 2.使用批处理. 3.使用windows计划任务. 第一种方案必须要 ...
- 条件竞争(race condition)
条件竞争漏洞是一种服务器端的漏洞,由于服务器端在处理不同用户的请求时是并发进行的,因此,如果并发处理不当或相关操作逻辑顺序设计的不合理时,将会导致此类问题的发生. 参考了一些资料,发现一个比较能说明问 ...
- Activiti7 流程变量(理论)
什么是流程变量 流程变量在Activiti中是一个非常重要的角色,流程运转有时需要靠流程变量,业务系统和Activiti结合时少不了流程变量,流程变量就是Activiti在管理工作流时根据管理需要而设 ...
- .net mvc web api上传图片/文件并重命名
#region 上传图片 /// <summary> /// 上传图片到服务器 当error为0时成功,为1时失败 并从errmsg获取消息 /// </summary> // ...