1. BufferedOutputStream / BufferedInputStream(字节缓冲区流)的概述
通过定义数组的方式确实比以前一次读取一个字节的方式快很多,所以,看来有一个缓冲区还是非常好的。既然是这样的话,那么,java开始在设计的时候,它也考虑到了这个问题,就专门提供了带缓冲区的字节类。这种类被称为:缓冲区类(高效类)
写数据:BufferedOutputStream
读数据:BufferedInputStream
构造方法可以指定缓冲区的大小,但是我们一般用不上,因为默认缓冲区大小就足够了。
2. BufferedOutputStream 构造方法:
BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 |
BufferedOutputStream(OutputStream out, 创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。 |
BufferedOutputStream构造方法中,为什么不传递一个具体的文件 或者 文件路径,而是传递一个OutputStream对象呢 ?
答:原因很简单,字节缓冲区流仅仅提供缓冲区,为高效而设计的。但是呢,真正的读写操作还得靠基本的流对象实现。
3. BufferedOutputStream写出数据,代码示例:
1 package cn.itcast_05; 2 3 import java.io.BufferedOutputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 public class BufferedOutputStreamDemo { 8 public static void main(String[] args) throws IOException { 9 // BufferedOutputStream(OutputStream out) 10 // FileOutputStream fos = new FileOutputStream("bos.txt"); 11 // BufferedOutputStream bos = new BufferedOutputStream(fos); 12 // 简单写法 13 BufferedOutputStream bos = new BufferedOutputStream( 14 new FileOutputStream("bos.txt")); 15 16 // 写数据 17 bos.write("hello".getBytes()); 18 19 // 释放资源 20 bos.close(); 21 } 22 }
时间: 2024-11-03 21:22:29