开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情
Java中的流分为两种:一种是字节流,另一种是字符流。
字节流和字符流的区别是:字节流按8位传输以字节为单位输入输出数据,字符流按16位传输以字符为单位 输入输出数据。
10流分别由四个抽象类来表示(两输入两输出):InputStream2, OutputStream, Reader, Writer。
今天我们来说一下:java中IO流
按数据流向:输入流和输出流
输入和输出都是从程序的角度来说的。
流的流向分,分为输入流和输出流
输入流:数据流向程序
输出流:数据从程序流出。
操作单元划分,分为字节流和字符流
流的角色划分,分为节点流和处理流
按照功能: 节点流:包裹源头,实现基本功能;功能流:对节点流增强性能提高效率
JavalO流涉及到40多个类,虽然看上去比较杂乱,但其实很有规划,彼此间还有非常紧密的练习,他们都是从 4个抽象类基类中派生的。
Data流(字节节点流)
Data流(字节节点流): 读写基本数据类型+String类型数据,是字节流功能流的一种
DatalnputStream新增方法:readXxx()
DataOutputStream新增方法:writeXx()
存在新增方法不能发生多态,先写出再写入
可能碰到的异常:EOFException文件有,内容读入不到,必须读的是写出的源文件
注意:
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流流,流的本质是数据传输,根 据数据传输特性将流抽象为各种类,方便更直观的进行数据按操作。
字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。
结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。