java中的IO流

89 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情

Java中的流分为两种:一种是字节流,另一种是字符流。

字节流和字符流的区别是:字节流按8位传输以字节为单位输入输出数据,字符流按16位传输以字符为单位 输入输出数据。

10流分别由四个抽象类来表示(两输入两输出):InputStream2, OutputStream, Reader, Writer。

今天我们来说一下:java中IO流

按数据流向:输入流和输出流

输入和输出都是从程序的角度来说的。

流的流向分,分为输入流和输出流

输入流:数据流向程序

输出流:数据从程序流出。

操作单元划分,分为字节流和字符流

流的角色划分,分为节点流和处理流

按照功能: 节点流:包裹源头,实现基本功能;功能流:对节点流增强性能提高效率

JavalO流涉及到40多个类,虽然看上去比较杂乱,但其实很有规划,彼此间还有非常紧密的练习,他们都是从 4个抽象类基类中派生的。

Data流(字节节点流)

Data流(字节节点流): 读写基本数据类型+String类型数据,是字节流功能流的一种

DatalnputStream新增方法:readXxx()

DataOutputStream新增方法:writeXx()

存在新增方法不能发生多态,先写出再写入

可能碰到的异常:EOFException文件有,内容读入不到,必须读的是写出的源文件

注意:

流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流流,流的本质是数据传输,根 据数据传输特性将流抽象为各种类,方便更直观的进行数据按操作。

字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。

结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。