首页 > 编程笔记 > Java笔记 阅读:7

Java中的BufferedInputStream和BufferedOutputStream(附带实例)

BufferedInputStream 和 BufferedOutputStream 属于过滤流,提供了缓冲功能,可以显著提高 I/O 操作的效率。

Java 程序中,可能需要处理更复杂的 I/O 操作,例如处理大文件或网络数据流。在这些情况下,使用缓冲 I/O 类可以大大提高程序的效率和性能。

Java BufferedInputStream读取数据

BufferedInputStream 可以用来读取数据流。该类会从底层输入流中读取数据,并将数据存储在内部缓冲区中。这使得可以一次从缓冲区中读取多个字节,而不是每次只读取一个字节,从而提高了效率。

实例化 BufferedInputStream 类的对象时,需要给出一个 InputStream 类型的实例对象。BufferInputstream 定义了两种构造函数:
下面用一个简单例子展示如何使用 BufferedInputStream 读取一个文本文件。

【实例 1】使用 BufferedInputStream 读取“d:\\example.txt”文件中的内容。文件内容是本题目对应的代码,并输出到控制台。
import java.io.*;

public class BufferedInputStreamExample {
    public static void main(String[] args) {
        try {
            FileInputStream fileInputStream = new FileInputStream("d:\\example.txt");
            BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
            int data;
            while ((data = bufferedInputStream.read()) != -1) {
                System.out.print((char) data);
            }
            bufferedInputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
程序执行结果如下图所示:


图 1 程序的运行结果

Java BufferedOutputStream写入数据

BufferedOutputStream 可以用来写入数据流。这个类将数据写入内部缓冲区,直到缓冲区满或者显式地刷新缓冲区。这使得可以一次写入多个字节,而不是每次只写入一个字节,从而提高了效率。

实例化 BufferedOutputStream 类的对象时,需要给出一个 OutputStream 类型的实例对象。该类的构造方法有两个:
下面用一个简单的例子展示如何使用 BufferedOutputStream 写入一个文本文件。

【实例 2】使用 BufferedOutputStream 向文本文件 d:\\example1.txt 中写入数据。
import java.io.*;

public class BufferedOutputStreamExample {
    public static void main(String[] args) {
        try {
            FileOutputStream fileOutputStream = new FileOutputStream("d:\\example1.txt");
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
            bufferedOutputStream.write("Hello, world!".getBytes());
            bufferedOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
运行该程序,会在“d:\example1.txt”文件中写入“Hello,world!”。

相关文章