在java中,输入和输出都被称为抽象的流。流可以被看做一组有序的字节集合,即数据在两设备之间传输。

  流的本质是数据传输,根据处理数据类型的不同,流可以分为两大类:字节流和字符流

  字节流以字节(8bit)为单位,包含两个抽象类:InputStream和OutputStream。

  字符流以字符(16bit)为单位,它包含两个抽象类Reader(输入流)和Writer(输出流)。

 

  字节流和字符流最主要的区别:字节流在处理输入输出时不会用到缓存。而字符流用到了缓存。

  java的IO类在设计时,采用了decorator设计模式。