欢迎访问宙启技术站
智能推送

Java中IO操作相关的函数:InputStream、OutputStream、Reader和Writer类的介绍

发布时间:2023-06-12 20:30:03

Java 中 IO 操作是编程中从输入数据中读取或者向输出数据中写入的关键方法之一。Java 中,用 InputStream、OutputStream、Reader 和 Writer 类实现各种 IO 操作。本文将介绍这些类的用途和使用方法。

InputStream 类

InputStream 类是所有输入流类的超类。InputStream 类用来读取字节流,并把其转换为字符流,包括读取文件、读取网络连接、读取字节数组和读取字符串等操作。InputStream 已实现的子类有:

- FileInputStream: 用来读取本地文件中的字节流。

- ByteArrayInputStream: 用来读取字节数组。

- PipedInputStream: 用来从一个线程中的 OutputStream 读取字节流。

OutputStream 类

和 InputStream 类一样,OutputStream 类也是所有输出流类的超类。OutputStream 类将字符或字节数组写入字节流中,包括写入本地文件、写入网络连接、写入字节数组和写入字符串等操作。OutputStream 已实现的子类有:

- FileOutputStream: 用来写入一个到本地文件的字节流。

- ByteArrayOutputStream: 用来写入一个字节数组。

- PipedOutputStream: 用来向一个线程中的 InputStream 写入字节流。

Reader 类

Reader 类用来读取字符流。Reader 提供抽象方法来让子类实现,如 read、close 和 skip 等。Reader 已实现的子类有:

- FileReader: 用来读取本地文件中的字符流。

- InputStreamReader: 用来读取字节流并将其转换为字符流。

Writer 类

和 Reader 类一样,Writer 类用来写入字符流。Writer 提供抽象方法来让子类实现,如 write、flush 和 close 等。Writer 已实现的子类有:

- FileWriter: 用来写入到本地文件中的字符流。

- OutputStreamWriter: 用来将字符流转换为字节流并输出到 OutputStream 中。

例子

下面是一个示例,演示如何使用 Reader 和 Writer 类从文件中读取和写入字符:

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileReaderWriterExample {
    public static void main(String[] args) {
        try {
            FileReader reader = new FileReader("input.txt");
            FileWriter writer = new FileWriter("output.txt");

            int character;
            while ((character = reader.read()) != -1) {
                writer.write((char) character);
            }

            reader.close();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这个程序将会从 input.txt 文件中读取字符,并将这些字符写入到 output.txt 文件中。

结论

上述内容描述了 Java 中用于实现 IO 操作的类,并提供了一个基本的示例。熟悉这些类的使用方法,在 Java 中实现 IO 操作变得更加容易。