BufferedOutputStream的flush和close方法的区别
* flush()方法
* 1.用来刷新缓冲区,刷新后可以再次写出
* close()方法
* 2.用来关闭流释放资源
* 3.如果是带缓冲区的流对象的close()方法,不但会关闭流,还会在关闭流之前刷新缓冲区,关闭之后不能再写入
package com.feng;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo02 {
public static void mian(String[] args) throws IOException {
/*
* BufferedOutputStream的flush和close方法的区别
*
* flush()方法
* 1.用来刷新缓冲区,刷新后可以再次写出
* close()方法
* 2.用来关闭流释放资源
* 3.如果是带缓冲区的流对象的close()方法,不但会关闭流,还会在关闭流之前刷新缓冲区,关闭之后不能再写入
*/
//把a文件的内容拷贝到b文件中
//1.创建输入流
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("a.txt"));
//2.创建输出流
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("b.txt"));
//3.读写操作
int b=0;
while ((b=bis.read())!=-1) {
bos.write(b);
}
bos.flush();
//4.关闭流
// bis.close();
// bos.close();
}
}
BufferedOutputStream没有关闭流方法,有flush()方法
但BufferedOutputStream的父类FilterOutputStream有close()方法
close()方法调用了flush()方法,也就是说,在关闭流之前会执行最后一次flush()
之后不能在写入数据