缓冲流也叫高效流,是对基本的FileXxx流的增强
字节缓冲流:BufferedInputStream,BufferedOutputStream
字符缓冲流:BufferedReader,BufferedWriter
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少
系统IO次数,从而提高读写的效率
字节缓冲流:
构造方法:
BufferedInputStream(InputStream in) | 创建一个 |
---|
BufferedOutputStream(OutputStream out) | 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 |
---|
java.io.BufferedOutputStream extends OutputStream
BufferedOutputStream:字节缓冲输出流
有继承自父类的共性成员方法:(子类继承父类,可以使用父类的成员方法)
void | close() | 关闭此输出流并释放与此流相关联的任何系统资源。 |
---|---|---|
void | flush() | 刷新此输出流并强制任何缓冲的输出字节被写出。 |
void | write(byte[] b) | 将 |
void | write(byte[] b, int off, int len) | 从指定的字节数组写入 |
abstract void | write(int b) | 将指定的字节写入此输出流。 |
OutputStream的构造方法:
Constructor | 描述 |
---|---|
BufferedOutputStream(OutputStream out) | 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。 |
BufferedOutputStream(OutputStream out, int size) | 创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流。 |
参数:
OutputStream out:字节输出流 可以传递FileOutputStream,缓冲流会给FileOutputStream增加一个缓冲区,提高FileOutputStream的写入效率
int size:指定缓冲流内部缓冲区大小,不指定默认
BufferedOutputStream使用步骤:
1、创建FileOutputStream(字节输出流)对象,构造方法中绑定要输出的目的地
2、创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象,提高FileOutputStream的写入效率
3、使用BufferedOutputStream对象中的方法write方法,把数据写入到内部缓冲区中
4、使用BufferedOutputStream对象中的flush,把内部缓冲区的数据,刷新到文件中
5、释放资源(会先调用flush方法刷新数据,第4步可以省略)
字节缓冲输出流的使用代码
package com.baidu.Buffered;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Buffered01 {
public static void main(String[] args) throws IOException {
FileOutputStream fos= new FileOutputStream("F:\\develop\\buffered.txt");
BufferedOutputStream bos=new BufferedOutputStream(fos);
bos.write("菠萝吹雪也有春天呢".getBytes());
bos.close();
}
}