【答案解析】在Java语言中,输入和输出都被称为抽象的流,流可以被看作一组有序的字节集合,即数据在两设备之间的传输。
流的本质是数据传输,根据处理数据类型的不同,流可以分为两大类:字节流和字符流。字节流以字节(8 bit)为单位,包含两个抽象类:InputStream(输入流)和OutputStream(输出流)。字符流以字符(16 bit)为单位,根据码表映射字符,一次可以读多个字节,它包含两个抽象类:Reader(输入流)和Writer(输出流)。字节流和字符流最主要的区别为:字节流在处理输入输出时不会用到缓存,而字符流用到了缓存。每个抽象类都有很多具体的实现类,在这里就不详细介绍了。下图主要介绍Java中IO的设计理念。Java IO类在设计时采用了Decorator(装饰者)设计模式,以InputStream为例,介绍Decorator设计模式在IO类中的使用如下。