JavaI/O流

一,什么是流

流:一串流动的字符 先入先出
流的本质:数据传输 根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
作用:为数据源和目的地建立一个传输通道

二,输入(读)和输出(写)

1.输入:读,将文档中的数据读取到程序中的过程

如图所示
JavaI/O流
先在磁盘里创建一个txt文件 并在里面放入数据

然后如下图
JavaI/O流

首先创建文件输入流对象
然后写入刚才创建txt文件的绝对位置 使用FileInputStream类读取文本文件
在创建字节数组 将数组读入到字节数组中 然后将字节数组重新转成字符串 运行就可以读取到刚才创建的文本文件内的内容

如下图所示
JavaI/O流
2.输出:写,程序中的数据保存到文档中的过程

如图所示
JavaI/O流
首先创建在磁盘里创建一个txt文件 在里面不写数据
然后如下图所示
JavaI/O流
首先创建文件输出流对象
然后使用FileOutputStream类向文本文件写数据 在里面写入刚才我们创建的txt文件的绝对位置
然后创建想要写txt文件内的数据
将字符串转化为字节数组
然后调用方法 并且运行
JavaI/O流
运行后可以看到 在我们刚才创建的txt文件内已经被写入了我们刚才创建的数据

三,Java流的分类

(一):按照方向分:输入流和输出流
(二):按照操作单元分:字节流和字符流

关于输入和输出我们刚才在上面已经了解过了,接下来我们来看一下字节流和字符流有什么区别

字节流和字符流的区别

读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

字节流:一次读入或读出是8位二进制。通过字节的形式一个字节一个字节或者字节数组来操作文件中内容,可以操作一切文件。

字符流:一次读入或读出是16位二进制。通过单个字符或者是字符数组的形式来操作文件的,存在一定的局限性,是专门用于对文本文件操作的,默认的版本为GBK

四,四种流的基类

InputStream:字节输入流
OutputStream:字节输出流
Reader:字符输入流
Writer:字符输出流