📅  最后修改于: 2023-12-03 14:42:13.451000             🧑  作者: Mango
Java BufferedOutputStream类是Java IO库中的一种输出流,用于将数据写入到缓冲区,提高输出效率。该类继承于FilterOutputStream类,并添加了带缓冲的输出功能。
创建BufferedOutputStream对象有两种方式:
可以使用已有的OutputStream对象创建BufferedOutputStream对象:
OutputStream os = new FileOutputStream("file.txt");
BufferedOutputStream bos = new BufferedOutputStream(os);
也可以直接创建BufferedOutputStream对象:
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("file.txt"));
使用BufferedOutputStream对象写入数据有两个方法:
使用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个字符写入缓冲区
使用flush()方法将缓冲区的数据写入到OutputStream对象中:
bos.flush(); // 将缓冲区的数据写入到文件中
使用完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类提供了带缓冲的输出功能,能够大大提高输出效率。使用该类需要注意关闭对象以释放资源。常见的操作有写入文件和复制文件。