亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java BufferedOutputStream 类

Java BufferedOutputStream 类

在本教程中,我们将通过示例了解 Java BufferedOutputStream 及其方法。

BufferedOutputStream java.io 的类 包与其他输出流一起使用以更有效地写入数据(以字节为单位)。

它扩展了 OutputStream 抽象类。


BufferedOutputStream 的工作

BufferedOutputStream 维护一个内部 8192 字节的缓冲区 .

在写操作期间,字节被写入内部缓冲区而不是磁盘。一旦缓冲区被填满或流被关闭,整个缓冲区就会被写入磁盘。

因此,减少了与磁盘的通信次数。这就是为什么使用 BufferedOutputStream 写入字节更快的原因 .


创建一个 BufferedOutputStream

为了创建一个 BufferedOutputStream ,我们必须导入 java.io.BufferedOutputStream 先打包。一旦我们在这里导入包,我们就可以创建输出流了。

// Creates a FileOutputStream
FileOutputStream file = new FileOutputStream(String path);

// Creates a BufferedOutputStream
BufferedOutputStream buffer = new BufferOutputStream(file);

在上面的例子中,我们创建了一个 BufferdOutputStream 命名为 缓冲区FileOutputStream 命名为 文件 .

这里,内部缓冲区的默认大小为 8192 字节。但是,我们也可以指定内部缓冲区的大小。

// Creates a BufferedOutputStream with specified size internal buffer
BufferedOutputStream buffer = new BufferOutputStream(file, int size);

缓冲区 将有助于更快地将字节写入文件。


BufferedOutputStream的方法

BufferedOutputStream 类提供了OutputStream中不同方法的实现 类。

write() 方法

示例:BufferedOutputStream 将数据写入文件

import java.io.FileOutputStream;
import java.io.BufferedOutputStream;

public class Main {
    public static void main(String[] args) {

        String data = "This is a line of text inside the file";

        try {
            // Creates a FileOutputStream
            FileOutputStream file = new FileOutputStream("output.txt");

            // Creates a BufferedOutputStream
            BufferedOutputStream output = new BufferedOutputStream(file);

            byte[] array = data.getBytes();

            // Writes data to the output stream
            output.write(array);
            output.close();
        }

        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

在上面的示例中,我们创建了一个名为 output 的缓冲输出流 连同 FileOutputStream .输出流与文件 output.txt 链接 .

FileOutputStream file = new FileOutputStream("output.txt");
BufferedOutputStream output = new BufferedOutputStream(file);

要将数据写入文件,我们使用了 write() 方法。

这里当我们运行程序时,output.txt 文件中填充了以下内容。

This is a line of text inside the file.

注意 :getBytes() 程序中使用的方法将字符串转换为字节数组。


flush() 方法

要清除内部缓冲区,我们可以使用 flush() 方法。此方法强制输出流将缓冲区中存在的所有数据写入目标文件。例如,

import java.io.FileOutputStream;
import java.io.BufferedOutputStream;

public class Main {
    public static void main(String[] args) {

        String data = "This is a demo of the flush method";

        try {
            // Creates a FileOutputStream
            FileOutputStream file = new FileOutputStream(" flush.txt");

            // Creates a BufferedOutputStream
            BufferedOutputStream buffer = new BufferedOutputStream(file);

            // Writes data to the output stream
            buffer.write(data.getBytes());

            // Flushes data to the destination
            buffer.flush();
            System.out.println("Data is flushed to the file.");
            buffer.close();
        }

        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

输出

Data is flushed to the file.

当我们运行程序时,文件 flush.txt 用字符串 data 表示的文本填充 .


close() 方法

要关闭缓冲的输出流,我们可以使用 close() 方法。一旦方法被调用,我们就不能使用输出流来写入数据了。

要了解更多信息,请访问 Java BufferedOutputStream(Java 官方文档)。


java

  1. Java final 关键字
  2. Java instanceof 运算符
  3. Java 继承
  4. Java 嵌套静态类
  5. Java 匿名类
  6. Java 单例类
  7. Java 反射
  8. Java ArrayList 类
  9. Java 堆栈类
  10. Java ObjectOutputStream 类
  11. Java 泛型
  12. Java 文件类