欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > java 中 IO 流分为几种?附带答案及示例

java 中 IO 流分为几种?附带答案及示例

2025/9/22 6:01:02 来源:https://blog.csdn.net/weixin_64296810/article/details/148696340  浏览:    关键词:java 中 IO 流分为几种?附带答案及示例

🎈边走、边悟🎈迟早会好

在 Java 中,IO 流根据不同的分类方式可以分为多种类型,以下是主要的分类及示例:

按数据流的方向:输入流输出流

输入流用于从源读取数据,输出流用于向目标写入数据。

按处理数据单位:字节流字符流

字节流以字节(8 位)为单位处理数据,字符流以字符(16 位,支持 Unicode)为单位处理数据。

按功能:节点流处理流

节点流直接与数据源相连,处理流用于包装节点流以提供增强功能。

主要 IO 流类及其继承关系
  • 字节输入流InputStream(抽象基类)→ FileInputStreamBufferedInputStream 等
  • 字节输出流OutputStream(抽象基类)→ FileOutputStreamBufferedOutputStream 等
  • 字符输入流Reader(抽象基类)→ FileReaderBufferedReader 等
  • 字符输出流Writer(抽象基类)→ FileWriterBufferedWriter 等

示例代码

以下是使用不同 IO 流的示例:

import java.io.*;public class IOStreamExample {public static void main(String[] args) {String sourceFile = "input.txt";String destFile = "output.txt";// 1. 字节流示例:使用 FileInputStream 和 FileOutputStream 复制文件try (FileInputStream fis = new FileInputStream(sourceFile);FileOutputStream fos = new FileOutputStream(destFile)) {int byteData;while ((byteData = fis.read()) != -1) {fos.write(byteData);}System.out.println("字节流复制完成");} catch (IOException e) {e.printStackTrace();}// 2. 字符流示例:使用 FileReader 和 FileWriter 复制文本文件try (FileReader fr = new FileReader(sourceFile);FileWriter fw = new FileWriter(destFile)) {int charData;while ((charData = fr.read()) != -1) {fw.write(charData);}System.out.println("字符流复制完成");} catch (IOException e) {e.printStackTrace();}// 3. 缓冲流示例:使用 BufferedReader 和 BufferedWriter 高效处理文本try (BufferedReader br = new BufferedReader(new FileReader(sourceFile));BufferedWriter bw = new BufferedWriter(new FileWriter(destFile))) {String line;while ((line = br.readLine()) != null) {bw.write(line);bw.newLine(); // 写入换行符}System.out.println("缓冲流处理完成");} catch (IOException e) {e.printStackTrace();}// 4. 数据流示例:使用 DataInputStream 和 DataOutputStream 处理基本数据类型try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.dat"));DataInputStream dis = new DataInputStream(new FileInputStream("data.dat"))) {// 写入基本数据类型dos.writeInt(123);dos.writeDouble(3.14);dos.writeBoolean(true);// 读取基本数据类型(注意顺序必须与写入时一致)int num = dis.readInt();double d = dis.readDouble();boolean b = dis.readBoolean();System.out.printf("数据流读取结果:%d, %.2f, %b%n", num, d, b);} catch (IOException e) {e.printStackTrace();}}
}

说明

  1. 字节流适用于处理二进制数据(如图片、视频),而字符流适用于处理文本数据。
  2. 缓冲流(如 BufferedInputStreamBufferedWriter)通过缓冲区提高 IO 效率,建议优先使用。
  3. 数据流(如 DataInputStreamDataOutputStream)提供了处理基本数据类型的能力。
  4. Java 7 引入的 try-with-resources 语句可自动关闭实现了 AutoCloseable 接口的资源,避免资源泄漏。

这些分类和示例涵盖了 Java IO 流的核心概念和常见用法。

 🌟感谢支持 听忆.-CSDN博客

🎈众口难调🎈从心就好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com