一、
(1)
IO流也称为输入输出流、就是用来读写数据的
I:input,是数据从硬盘文件读入到内存的过程,称之为输入,负责读
O:output,是内存程序的数据从内存到写出到硬盘文件的过程,称之输出、负责写
(2)
字节流:音频、视频文件
字符流:文本
(3)
IO流作用:读写文件数据
二、
(1)每次读取一个字节存在什么问题?
性能较慢
读取中文字符输出无法避免乱码问题
(2)每次读取一个字节数组存在什么问题?
读取的性能得以提升
读取中文字符输出无法避免乱码问题
(3)如何使用字节输入流读取中文内容不乱码?
定义一个与文件一样大的数组,一次性读取完文件的全部字节
(4)直接把文件数据全部读取到一个字节数组怎样?
如果文件过大,字节数可能引起内存溢出
(5)字节输出流如何实现写出去的数据能换行?
os.write("\r\n".getBytes());
(6)如何让写出去的数据能成功生效?
flush(); //刷新数据
close(); //关闭流,关闭包含刷新,关闭后流不可以继续使用了
三、
(1)
try-catch-finally
finally:在异常处理时提供finally块来执行所有清除操作,比如IO流中的释放资源
(2)
特点:被finally控制的语句最终一定会执行,除非JVM退出
(3)
异常的处理标准格式:try.....catch.....finally
(4)
finally代码块最终是一定要执行的,可以在代码执行完毕的最后释放资源
四、
(1)字符流的好处
读取中文字符不会出现乱码(如果文件和代码的编码一致)
(2)每次读取一个字符的问题
性能较慢
(3)文件字符输入流(FileReader)的作用
以内存为基准,把磁盘文件中的数据以字符的形式读取到内存中
(4)每次读取一个字符的优势
读取的性能得到了提升,不会乱码
(5)字节流、字符流如何选择使用
字节流适合做一切文件数据 的拷贝(音视频、文本)
字节流不适合读取中文内容输出
字符流适合做文本文件操作(读,写)