概念理解
首先明确什么叫做流。流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象。
按照我自己的理解,流的传输就是两个容器之间的管道在传输容器中的水一样,把字节的集合比作水,那么数据就是流。
上图为io体系的流的分类,其中字节占用8位,字符占用16位,一个字符两个字节。
流的特性
1.先进先出,最先进入的流醉仙被读取。
2.无法随机访问某段字节中间的数据(RandomAccessFile可以从文件的任意位置进行存取(输入输出)操作)
3.每个流只有单一的读或者写的功能,如果要实现读写功能则需要创建两个流。
字节流和字符流的区别
字节流是没有缓冲区的,而字符流是有缓冲区的。也就是说,在输出的时候字节流未调用close方法时,信息就已经输出了,而字符流在调用close方法关闭缓冲区之后信息才能输出。要想字符流在未关闭时输出信息,则需要手动调用flush()方法。