Java 的核心库 java.io 提供了全面的 IO 接口,包括:文件读写、标准设备输出等。Java 中 IO 是以
流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
在项目开发中,IO 是非常基础的部分,在面试当中经常出现。
对于初学者而言,IO 部分是容易忽略的内容,求职者一定要掌握该知识点。
根据面试题详解 IO 流。
10.3.1 了解 Java 的 IO 类
面试例题 28:下面关于 System.out 的说法哪个正确?
请选择正确的答案。
(a)System.out 是 1 个 PrintStream。
(b)System.out 是 1 个 OutputStream。
(c)System.out 是 1 个 FilterOutputStream。
(d)System.out 是 1 个 PrintStream。
(e)System.out 在异常时,将抛出 IOException。
考点:考查求职者对 Java 语言的 IO 处理的掌握。
出现频率:★★★★
解析
IO(Input/Output)是计算机输出/输出的接口。Java 的核心库 java.io 提供了全面的 IO 接口,包括
文件读写、标准设备输出等。Java 中 IO 是以流为基础进行输入输出的,所有数据被串行化写入输
出流,或者从输入流读入。此外,Java 也对块传输提供支持,在核心库 java.nio 中采用的便是块
IO。
注意:流 IO 的好处是简单易用,缺点是效率较低。块 IO 效率很高,但编程比较复杂。
Java 的 IO 模型设计非常优秀,它使用 Decorator 模式,用户可以动态装配不同功能的 Stream,以
便获得需要的功能。例如,需要一个具有缓冲的文件输入流,则应当组合使用 FileInputStream 和
BufferedInputStream。
Java 的 IO 体系分 Input/Output 和 Reader/Writer 两类,区别在于 Reader/Writer 在读写文本时能自
动转换内码。基本上,所有的 IO 类都是配对的,即有 XxxInput 就有一个对应的 XxxOutput。
Java 的输入/输出操作是基于数据流(Stream)的,有序的字节或者字符通过一个通信信道从源地
址传送到目的地址。Java 支持两个数据流:InputStream 和 OutputStream。这两个数据流又可以
分为许多子类来完成 IO 功能。Java 1.1 版本正式加入了 Reader 和 Writer 两个类,支持 Java IO 的
国际化标准,并通过国际化字符编码(Unicode)将文本存储起来。
如图 10.5 所示是 Java IO 的类图。如图 10.6 所示是 Java 的 Reader 和 Writer 类图。
评论1