Java 中 IO 流的分类

发布时间:2024年01月12日

Java 中的 I/O(输入/输出)流是处理输入和输出的机制。在 Java 中,I/O 流主要分为两大类:字节流和字符流。每个类别又分为输入流和输出流。这两大类流都是用于在程序和外部源(文件、网络、内存等)之间传输数据的。

字节流(Byte Streams)

字节流以字节为单位进行读写,适用于处理二进制数据。Java 中的字节流主要由两个基本类组成:InputStream 和 OutputStream。

InputStream(输入流)

InputStream 是所有字节输入流的抽象基类。它定义了一些基本的方法来读取字节数据。以下是一些常见的 InputStream 的实现类:

1、FileInputStream: 用于从文件读取数据。

InputStream input = new FileInputStream("example.txt");

2、ByteArrayInputStream: 从字节数组中读取数据。

byte[] data = {65, 66, 67, 68};
InputStream input = new ByteArrayInputStream(data);

3、BufferedInputStream: 提供缓冲功能,提高读取性能。

InputStream input = new BufferedInputStream(new FileInputStream("example.txt"));

OutputStream(输出流)

OutputStream 是所有字节输出流的抽象基类。它定义了一些基本的方法来写入字节数据。以下是一些常见的 OutputStream 的实现类:

1、FileOutputStream: 用于向文件写入数据。

OutputStream output = new FileOutputStream("example.txt");

2、ByteArrayOutputStream: 将数据写入字节数组。

ByteArrayOutputStream output = new ByteArrayOutputStream();

3、BufferedOutputStream: 提供缓冲功能,提高写入性能。

OutputStream output = new BufferedOutputStream(new FileOutputStream("example.txt"));

字符流(Character Streams)

字符流以字符为单位进行读写,适用于处理文本数据。Java 中的字符流主要由两个基本类组成:Reader 和 Writer。

Reader(读取器)

Reader 是所有字符输入流的抽象基类。它定义了一些基本的方法来读取字符数据。以下是一些常见的 Reader 的实现类:

1、FileReader: 用于从文件读取字符数据。

Reader reader = new FileReader("example.txt");

2、CharArrayReader: 从字符数组中读取数据。

char[] data = {'A', 'B', 'C', 'D'};
Reader reader = new CharArrayReader(data);

3、BufferedReader: 提供缓冲功能,提高读取性能。

Reader reader = new BufferedReader(new FileReader("example.txt"));

Writer(写入器)

Writer 是所有字符输出流的抽象基类。它定义了一些基本的方法来写入字符数据。以下是一些常见的 Writer 的实现类:

1、FileWriter: 用于向文件写入字符数据。

Writer writer = new FileWriter("example.txt");

2、CharArrayWriter: 将数据写入字符数组。

CharArrayWriter writer = new CharArrayWriter();

3、BufferedWriter: 提供缓冲功能,提高写入性能。

Writer writer = new BufferedWriter(new FileWriter("example.txt"));

转换流(转换器)

转换流是字符流和字节流之间的桥梁,提供了将字节流转换为字符流的能力。主要有 InputStreamReader 和 OutputStreamWriter。

InputStreamReader

InputStreamReader 是字节流到字符流的桥梁。它将字节流转换为字符流,可以指定字符集进行解码。

InputStream input = new FileInputStream("example.txt");
Reader reader = new InputStreamReader(input, "UTF-8");

OutputStreamWriter

OutputStreamWriter 是字符流到字节流的桥梁。它将字符流转换为字节流,可以指定字符集进行编码。

OutputStream output = new FileOutputStream("example.txt");
Writer writer = new OutputStreamWriter(output, "UTF-8");

对象流

对象流用于读写对象。主要有 ObjectInputStream 和 ObjectOutputStream。

ObjectInputStream

ObjectInputStream 用于从流中读取对象。

InputStream input = new FileInputStream("object.dat");
ObjectInputStream objectInput = new ObjectInputStream(input);

ObjectOutputStream

ObjectOutputStream 用于向流中写入对象。

OutputStream output = new FileOutputStream("object.dat");
ObjectOutputStream objectOutput = new ObjectOutputStream(output);

Java 中的 I/O 流提供了丰富的工具和类,以满足不同类型数据的读写需求。字节流适用于处理二进制数据,而字符流适用于处理文本数据。转换流用于在字符流和字节流之间进行转换,对象流则用于读写对象。选择适当的流取决于所处理数据的类型和需求。通过合理使用这些流,可以实现高效的输入和输出操作。

黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)

黑马程序员Java零基础视频教程_下部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)

文章来源:https://blog.csdn.net/Itmastergo/article/details/135548161
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。