/*
演示mp3的复制,通过缓冲区。
BufferedOutputStream
BufferedInputStream
*/
import java.io.*;
class StreamCopyMp3
{
public static void main(String[] args) throws IOException
{
/*
long start = System.currentTimeMillis();
copyMp3();
long end = System.currentTimeMillis();
System.out.println(end-start+"ms");
*/
long start1 = System.currentTimeMillis();
copyMp3_MyBufferedInputStream();
long end1 = System.currentTimeMillis();
System.out.println(end1-start1+"ms");
}
//通过字节流的缓冲区完成复制
public static void copyMp3()throws IOException
{
FileOutputStream fos = new FileOutputStream("E:\\javademo\\day19\\2.mp3");
FileInputStream fis = new FileInputStream("E:\\javademo\\day19\\1.mp3");
BufferedOutputStream bufos = new BufferedOutputStream(fos);
BufferedInputStream bufis = new BufferedInputStream(fis);
int buf=0;
while((buf=bufis.read())!=-1)
{
bufos.write(buf);
}
bufis.close();
bufos.close();
}
//自定义字节流缓冲区,一次读一个字节
public static void copyMp3_MyBufferedInputStream()throws IOException
{
FileOutputStream fos = new FileOutputStream("E:\\javademo\\day19\\3.mp3");
FileInputStream fis = new FileInputStream("E:\\javademo\\day19\\1.mp3");
BufferedOutputStream bufos = new BufferedOutputStream(fos);
MyBufferedInputStream mybufis = new MyBufferedInputStream(fis);
int buf=0;
while((buf=mybufis.myRead())!=-1)
{
bufos.write(buf);
}
mybufis.myClose();
bufos.close();
}
}