目录
前言
io流是一个流动的管道,负责将我们在内存中的数据保存到硬盘上,在之前我们每次运行程序时所有的数据都是存储在内存中的,当我们的程序终止时这些数据就会消失,而当我们使用了io流之后我们就可以把这些数据保存在硬盘上实现永久存储
IO分类
io根据流向,数据类型和功能可以分为三类
根据数据的流向可以分为输入流和输出流,输入和输出是以我们的程序为主的,输入流就是往程序里读,输出流就是往硬盘里写
根据类型可以分为字符流和字节流,字符流输入输出的都是字符,字节流输入输出的都是字节,在计算机中文件都是以字节为单位存储的
根据功能可以分为节点流和过程流,节点流是直接和硬盘中或者程序中的数据对接的,可以直接获取数据
过程流是从另一个流中获取数据,然后对数据进行加工处理的流
文件字节输入输出流
文件字节输入输出流是一个节点流,数据写进管道后会自动写入文件
下面我们来看一下如何
创建文件字节输入流
注意:这个要确保你读的文件存在,否则会抛出FileNotFoundException异常
既然有了输入流我们就可以从文件向程序中读数据了,如果我们需要从程序向文件中写数据,就要用到输出流
创建文件字节输出
创建的过程都是一样的,我们主要看一下如何使用
文件字节输入输出流的使用
读数据我们使用read方法,通过输入流对象调用方法
读有两种方法,第一种没有传参的方式,返回的数据是读到数据的字节数,也就是这个字符在ASCII码表中代表的数字
第二种方法返回的数据是读到数据的长度,这种方法需要我们传递一个字节数组,这个数组的作用是用来装读到的数据,数组的大小就是每次读到的数据的大小
写数据有三种方式,第一种我们可以一次写入一个字节
第二种我们可以使用数组一次写入一组字节
第三种方式是把字节数组b中的数据,从指定的位置开始写,写length个长度
关闭流
当我们使用完这些流后,我们应该将流管道关闭
我们使用close方法将流关闭
ops.close