缓冲字节流(处理流)BufferedInputStream、BufferedOutputStream
【1】读一个字节写一个字节

【2】利用缓冲数组

【3】利用缓冲区

想要完成上面的效果单纯靠FileInputStream、FileOutputStream是不可以完成的,这个时候就需要功能的加强,
这个加强就需要引入新的流(在FileInputStream、FileOutputStream外面再套一层流):BufferedInputStream、BufferedOutputStream---》处理流
package com.msb.io02; import java.io.*; /** * @author : liu * 日期:14:26:59 * 描述:IntelliJ IDEA * 版本:1.0 */ public class Test06 { //这是一个main方法:是程序的入口 public static void main(String[] args) throws IOException { //1.有一个源文件 File file = new File("D:\\lol.jpg"); //2.有一个目标文件 File file2 = new File("D:\\lol2.jpg"); //3.有一个输入的管道怼到源文件上面 FileInputStream fis=new FileInputStream(file); //4.有一个输出的管道怼到目标件上面 FileOutputStream fos = new FileOutputStream(file2); //5.功能加强,在FileInputStream外面套一个管:BufferedInputStream BufferedInputStream bis=new BufferedInputStream(fis); //6.功能加强,在FileOutputStream外面套一个管:BufferedOutputStream BufferedOutputStream bos=new BufferedOutputStream(fos); //7.开始动作 byte[] b=new byte[1024*6]; int len = bis.read(b); while (len!=-1){ bos.write(b,0,len); /*bos.flush();底层已经帮我们做了刷新缓冲区的操作,不用我们手动完成:底层调用flushBuffer()*/ len = bis.read(b); } //8.关闭流 //倒着关,如果处理流包裹着节点流的话,那么其实只要关闭高级流(处理流),那么里面的字节流也会随之被关闭 bos.close(); bis.close(); } }
浙公网安备 33010602011771号