Java基础面试题, Java 的 IO 流是什么?
Java基础面试题, Java 的 IO 流是什么?
QA
Step 1
Q:: 什么是 Java 的 I/
O 流?
A:: Java 的 I/O 流是指用于输入和输出操作的 API。Java 提供了多种类来处理输入和输出,主要分为字节流和字符流两大类。字节流以 8 位为单位处理数据,而字符流以 16
位 Unicode 为单位处理数据。常见的字节流类有 InputStream 和 OutputStream,而字符流类有 Reader 和 Writer。
Step 2
Q:: 字节流和字符流的区别是什么?
A:: 字节流用于处理所有类型的输入/输出,包括图像、视频、音频等,它们以 8 位为单位处理数据。而字符流则专门用于处理文本数据,它们以 16
位为单位处理数据,并且可以自动处理字符编码转换。使用字节流类时,可以读取任何二进制文件;而使用字符流类时,主要用于处理文本文件。
Step 3
Q:: FileInputStream 和 FileOutputStream 的作用是什么?
A:: FileInputStream 是用于读取文件内容的字节输入流,FileOutputStream 则是用于将数据写入文件的字节输出流。它们都属于字节流,用于读取和写入二进制数据。
Step 4
Q:: BufferedReader 和 BufferedWriter 是做什么的?
A:: BufferedReader 和 BufferedWriter 是用于提高字符流效率的缓冲类。BufferedReader 是字符输入流,用于高效地读取文本内容,通常用于按行读取数据。而 BufferedWriter 是字符输出流,用于高效地写入文本数据。使用这些缓冲类可以减少 I/
O 操作的次数,提高程序的性能。
Step 5
Q:: 如何使用 Java NIO 进行文件 I/
O 操作?
A:: Java NIO 提供了更现代化的 I/O 操作,它使用通道 (Channel) 和缓冲区 (Buffer) 机制,并支持非阻塞 I/O 和多路复用。NIO 的主要类包括 FileChannel、ByteBuffer、Paths 和 Files。通过 NIO,你可以高效地处理大文件、网络通信以及多线程 I/
O 操作。