在java中,输入和输出都被称为抽象的流。流可以被看做一组有序的字节集合,即数据在两设备之间传输。
流的本质是数据传输,根据处理数据类型的不同,流可以分为两大类:字节流和字符流。
字节流以字节(8bit)为单位,包含两个抽象类:InputStream和OutputStream。
字符流以字符(16bit)为单位,它包含两个抽象类Reader(输入流)和Writer(输出流)。
字节流和字符流最主要的区别:字节流在处理输入输出时不会用到缓存。而字符流用到了缓存。
java的IO类在设计时,采用了decorator设计模式。