Java I/O 流类的主要抽象基类是什么?
查看完整题解
参考回答
直接回答
传统 I/O 的四个主要抽象基类是 InputStream、OutputStream、Reader、Writer。前两者处理字节,后两者处理字符;输入与输出表示相对当前程序的数据方向。它们不是一个所有流都继承的共同 Stream 父类。
讲清原理
| 数据单位 | 输入 | 输出 |
|---|---|---|
| 字节 | InputStream | OutputStream |
| 字符 | Reader | Writer |
字节流适合图片、压缩包等二进制数据;字符流适合按指定编码处理文本。InputStreamReader 与 OutputStreamWriter 是字节和字符之间的桥接。BufferedReader 等包装类则增加缓冲或读取便利,并不改变字符流的基本身份。
例子与易错点
读取图片时,不要先解码为字符串再写回,那可能改变原始字节。读取文本时,也不要只靠默认编码碰运气。java.util.stream.Stream 属于另一套处理元素序列的 API,不是上述文件 I/O 流的共同父类;NIO 的 Channel 也不都继承 InputStream。
相关题:第 61 题、第 64 题、第 66 题。
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。