1、IO流
用来操作文件内容的
内容结构如下图:
注意:使用字节流的时候,注意read方法的返回值
如果是读取单个字节 返回是对应的ASCII码值
如果是读取的数组 此时返回的是读取的字节个数
如果返回值为-1表示 文件末尾
只有字符流的时候才可以直接使用字符串
产生乱码的原因是,文件存储的编码格式和io流中使用的编码格式不一致。
2、字节流与字符流的区别
相同点:都是io流,用来操作文件内容
不同点:操作的单位不同
字节流:是以字节为点位操作,去读取或者写入数据,多用来操作媒体资源、音频、视频、图片、文件和编码集有关系,有可能产生乱码
字符流:是以字符为单位,读取或者写入数据,多用来操作文本文件
输出时:字节流从内存–》磁盘, 不需要关闭流数据也可以写入;字符流从内存–》缓冲区–》磁盘 写入的时候需要手动刷新或者关闭流才能将缓冲区的数据写入到磁盘
3、异常处理
在jdk1.7以后出现的;语法为
try(
//需要关闭的流资源
){
//功能语句
}catch(//异常对象){
//异常处理
}