IO流BufferedInputStream和BufferOutputStream拷贝。

A:缓冲思想

字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多。

这是加入了数组这样的缓冲区效果,JAVA本身在设计的时候,也考虑到了这样的设计思想,所以同乐字节缓冲区流。

B:BufferedInputStream内置了一个缓冲区(数组),从BufferedInputStream中读取一个字节时:BufferedInputStream会一次性从文件中读取8192个,存在缓冲区,返回给程序一个,程序再次读取时就不用找文件了,直接从缓冲区中获取,直接到缓冲区中所有的都被使用过,才重新从文件中读取8192个。

C:BufferOutputStream也内置了一个缓冲区(数组),程序向流中写出字节时,也不会直接写到文件,先写到缓冲区,直到缓冲区写满BufferOutputStream才会把缓冲区中的数据一次性写到文件里。

D:用代码实现

FileInputStream fis = new FileInputStream ("致青春.mp3"); //创建文件输入流对象,关联致青春.mp3

BufferedInputStream bis = new BufferedInputStream (fis);  //创建缓冲区对fis装饰

 FileOutputStream fos = new FileOutputStream ("copy.mp3");  //创建输出流对象,关联copy.mp3

BufferOutputStream  bos = new BufferOutputStream  (fos);  //创建缓冲区对fos装饰

int b;

while(b = bis.read() != -1){

   bos.write(b)

}

bis.close();

bos.close();   //只关装饰后的对象即可

原文地址:https://www.cnblogs.com/wangffeng293/p/13137947.html