IO流基础

一、什么是IO流

数据源和程序之间交互的管道叫做IO流,主要用来处理设备之间的数据传输

二、字节和字符

字节(Byte):字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。字节是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制,它是一个8位的二进制数,是一个很具体的存储空间。
字符:人们使用的记号,抽象意义上的一个符号。 ‘1’, ‘中’, ‘a’, ‘$’, ‘¥’, ……
按照ANSI编码标准,标点符号、数字、大小写字母都占一个字节,汉字占2个字节。按照UNICODE标准所有字符都占2个字节。Java采用unicode编码,2个字节来表示一个字符。

二、IO流的分类

IO流有三种分类方式

1.按流向分类

输入流: 数据源到程序。
输出流: 程序到目的地。

2.按功能分类

节点流:从特定的地方读写的流类,如磁盘或者一块内存区域。
过滤流(处理流):不直接连接数据源,而是对其它流进行封装,以简化操作和提高性能。

3.按传输单位分类

字节流:以字节(8位二进制)为单位进行处理。主要用于读写诸如图像或声音的二进制数据。
字符流:以字符(16位二进制)为单位进行处理。
stream结尾都是字节流,reader和writer结尾都是字符流
只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。

三、IO流核心

IO流的核心是5个类和三个接口:

1.File 文件类
2.InputStream 字节输入流
3.OutputStream 字节输出流
4.Reader 字符输入流
5.Writer 字符输出流
6.Closeable 关闭流接口
7.Flushable 刷新流接口
8.Serializable 序列化接口

四、常见字节流和字符流

1. 常见字节流

IO流基础

2. 常见字符流

IO流基础