1.何为Io流?Io流的运行原理机制是什么?
Io流即为INputStream和OutputStream即数据的传入和输出
Io流的运行流程:
2.Io流的分类
1)按流的方向分
输入流InputStream和输出流OutputStream
2)按读取方式分
字节流
字节输入流input和字节输出流output
字节流总结:
1)字节流是万能的,几乎任何文件(包括文档 视频 音频等)都可以传输
2)字节流一次只能读取一个字节,因此在读取到中文(jbk中两个字节 utf-8中三个字节)时会出现乱码.如"a中国",它在读取时第一次会读到a,但第二次会读到中子的一半因为一个汉字占3个字符
字符流
字符输入流reader和字符输出流writer
字符流总结:
1)字符流只能读取普通文档(即能被记事本打开的文本如:TXT java ini py等文件)
2)字符流一次读取一个字符如"a中国"它在读取时第一次读取"a",第二次读取到"中"子,因为中子占一个字符
3.流的四大家族首领
字节流:
InputStream和OutputStream
字符流
Reader和Writer
总结:
1)注意该两大流的四大家族首领都是抽象类
2)所有的流都实现了closeable接口,因此都有close(释放内存)方法.每一种流在读取完后都应该被关闭,不然会消耗内存空间
3)所有的输出流都实现了flushable接口,因此都有flush方法,因此每次输出完数据后都应该用fiush方法将流管道中的数据刷新一下,强制将流管道中的数据输出完.flush的作用就是清空流管道
如果没有flush可能会造成数据丢失
4)java中只要以Stream结尾的类都是字节流,以reader和writer结尾的都是字符流
4java中常用的重点流