📜  Java BufferedOutputStream类(1)

📅  最后修改于: 2023-12-03 14:42:13.451000             🧑  作者: Mango

Java BufferedOutputStream类

Java BufferedOutputStream类是Java IO库中的一种输出流,用于将数据写入到缓冲区,提高输出效率。该类继承于FilterOutputStream类,并添加了带缓冲的输出功能。

创建BufferedOutputStream对象

创建BufferedOutputStream对象有两种方式:

1. 使用已有的OutputStream对象

可以使用已有的OutputStream对象创建BufferedOutputStream对象:

OutputStream os = new FileOutputStream("file.txt");
BufferedOutputStream bos = new BufferedOutputStream(os);
2. 直接创建

也可以直接创建BufferedOutputStream对象:

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("file.txt"));
写入数据

使用BufferedOutputStream对象写入数据有两个方法:

1. write()方法

使用write()方法写入单个字节:

bos.write(65); // 将ASCII码为65的字母A写入缓冲区

使用write()方法写入字节数组:

byte[] data = "Hello World".getBytes();
bos.write(data); // 将字符串Hello World写入缓冲区

使用write()方法写入字节数组的一部分:

byte[] data = "Hello World".getBytes();
bos.write(data, 0, 5); // 将字符串Hello的前5个字符写入缓冲区
2. flush()方法

使用flush()方法将缓冲区的数据写入到OutputStream对象中:

bos.flush(); // 将缓冲区的数据写入到文件中
关闭BufferedOutputStream对象

使用完BufferedOutputStream对象后,需要进行关闭以释放资源:

bos.close();
常用操作
写入文件

将字符串写入到文件中:

try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("file.txt"))) {
    bos.write("Hello World".getBytes());
} catch (IOException e) {
    e.printStackTrace();
}
复制文件

将一个文件复制到另一个文件:

try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("source.txt"));
     BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("target.txt"))) {
    byte[] data = new byte[1024];
    int length;
    while ((length = bis.read(data)) != -1) {
        bos.write(data, 0, length);
    }
} catch (IOException e) {
    e.printStackTrace();
}
总结

Java BufferedOutputStream类提供了带缓冲的输出功能,能够大大提高输出效率。使用该类需要注意关闭对象以释放资源。常见的操作有写入文件和复制文件。