【IO面试题 一】、介绍一下Java中的IO流

简介: Java中的IO流是对数据输入输出操作的抽象,分为输入流和输出流,字节流和字符流,节点流和处理流,提供了多种类支持不同数据源和操作,如文件流、数组流、管道流、字符串流、缓冲流、转换流、对象流、打印流、推回输入流和数据流等。

面试官:介绍一下Java中的IO流**

参考答案:

IO(Input Output)用于实现对数据的输入与输出操作,Java把不同的输入/输出源(键盘、文件、网络等)抽象表述为流(Stream)。流是从起源到接收的有序数据,有了它程序就可以采用同一方式访问不同的输入/输出源。

  • 按照数据流向,可以将流分为输入流和输出流,其中输入流只能读取数据、不能写入数据,而输出流只能写入数据、不能读取数据。

  • 按照数据类型,可以将流分为字节流和字符流,其中字节流操作的数据单元是8位的字节,而字符流操作的数据单元是16位的字符。

  • 按照处理功能,可以将流分为节点流和处理流,其中节点流可以直接从/向一个特定的IO设备(磁盘、网络等)读/写数据,也称为低级流,而处理流是对节点流的连接或封装,用于简化数据读/写功能或提高效率,也称为高级流。

Java提供了大量的类来支持IO操作,下表给大家整理了其中比较常用的一些类。其中,黑色字体的是抽象基类,其他所有的类都继承自它们。红色字体的是节点流,蓝色字体的是处理流。
在这里插入图片描述
根据命名很容易理解各个流的作用:

  • 以File开头的文件流用于访问文件;

  • 以ByteArray/CharArray开头的流用于访问内存中的数组;

  • 以Piped开头的管道流用于访问管道,实现进程之间的通信;

  • 以String开头的流用于访问内存中的字符串;

  • 以Buffered开头的缓冲流,用于在读写数据时对数据进行缓存,以减少IO次数;

  • InputStreamReader、InputStreamWriter是转换流,用于将字节流转换为字符流;

  • 以Object开头的流是对象流,用于实现对象的序列化;

  • 以Print开头的流是打印流,用于简化打印操作;

  • 以Pushback开头的流是推回输入流,用于将已读入的数据推回到缓冲区,从而实现再次读取;

  • 以Data开头的流是特殊流,用于读写Java基本类型的数据。

相关文章
|
10月前
|
存储 Java 数据库
[Java 基础面试题] IO相关
[Java 基础面试题] IO相关
Java- IO 及其相关面试题(上)
Java- IO 及其相关面试题(上)
271 0
|
Java 文件存储
每日一道面试题之java 中 IO 流分为几种?
每日一道面试题之java 中 IO 流分为几种?
|
存储 网络协议 Java
Java- IO 及其相关面试题(下)
Java- IO 及其相关面试题(下)
107 0
Java- IO 及其相关面试题(下)
|
存储 Java 编译器
Java之文件操作与IO
Java之文件操作与IO
72 0
|
存储 缓存 网络协议
Java IO常见的面试题
Java IO常见的面试题
205 0
Java 最常见面试题: java 中 IO 流分为几种?
Java 最常见面试题: java 中 IO 流分为几种?
|
缓存 Java
Java IO知识点
Java IO知识点
116 0
|
Java Linux 数据库
Java - IO输入输出流
Java - IO输入输出流
149 0
Java - IO输入输出流