目录
1:分类
字节缓冲输出流 BufferedOutputStream
字节缓冲输入流 BufferedInputStream
注意:他们的构造方法要输入的是input或者output的对象而他们是抽象类不能实例化所以应该传入他们的子类FileInputsteam或者FileOutputsteam
2:解释
由于他们继承于OutputStream或者InputStream所以与FileInputSteam或者FileOutputSteam具有一样的方法,唯一不同的是写入数据的时候需要刷新一下用flush()方法。
3:练习
1:复制文件
将当前目录下的a.txt复制到当前文件c.txt中
public static void main(String[] args) throws Exception{
//用匿名内部类形式创建缓冲输入和输出流
BufferedInputStream bi = new BufferedInputStream(new FileInputStream("a.txt"));
BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("c,txt"));
//复制文件
byte[] bytes =new byte[1024];
int l = 0;
while((l=bi.read(bytes))!=-1){
bo.write(bytes);
bo.flush();//刷新
}
//关闭资源
bo.close();
bo.close();
}
结果是当前目录下有一个c与a一样
2:复制图片
将C:\Users\婷\Pictures\视频项目\\图片.jpg复制到当前目录为图片.jpg
public static void main(String[] args) throws Exception{
//创建字节缓冲输入输出流
BufferedInputStream bi = new BufferedInputStream(new FileInputStream("C:\\Users\\婷\\Pictures\\视频项目\\图片.jpg"));
BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("图片.jpg"));
//复制图片
byte[] b = new byte[1024];
int l=0;
while((l=bi.read(b))!=-1){
bo.write(b);
bo.flush();
}
//关闭资源
bo.close();
bi.close();
}
结果是当前目录下出现了一个图片与所要复制的一样。
2:复制视频
将D:\t.mp4复制到当前目录为视频.mp4
public static void main(String[] args) throws Exception{
//创建字节缓冲输入和输出对象
BufferedInputStream bi = new BufferedInputStream(new FileInputStream("D:\\t.mp4"));
BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("视频.mp4"));
//复制视频
int l =0;
byte[] b = new byte[1024];
while((l=bi.read(b))!=-1){
bo.write(b);
bo.flush();
}
//关闭资源
bo.close();
bi.close();
}
结果是当前目录出现了视频与要复制一样