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 Demo01 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//StringBuffer:字符串緩沖對象
/**
* InputStream 抽象類
* -FileInputStream 文件輸入流
* -BufferedInputStream 緩沖區輸入流
*
* OutputStrean 抽象類
* -FileOutputStream 文件輸出流
* -BufferedOutputStream 緩沖區輸出流
* **/
//BufferedInputStream[緩沖區輸入流]和BufferedOutputStream[緩沖區輸出流]
/*這兩個流是內置了緩沖區流,也就是說內部有一個 字節數組
緩沖思想
字節流一次讀寫一個數組的速度明顯比一次讀寫一個字節的速度快很多,
java本身在設計的時候,加入了數組這樣的緩沖區效果,*/
//拷貝mp3文件
//1.創建兩個文件路徑
String file1 = "C:/Users/guoyongfeng/Desktop/test/a.mp3";
String file2 = "C:/Users/guoyongfeng/Desktop/test/b.mp3";
//2.使用帶緩沖區的輸入輸出流來讀寫數組
//2.1聲明一個緩沖區輸入流
FileInputStream fis = new FileInputStream(file1);
BufferedInputStream bis = new BufferedInputStream(fis);
//2.2聲明一個緩沖區輸出流
FileOutputStream fos = new FileOutputStream(file2);
BufferedOutputStream bos = new BufferedOutputStream(fos);
//2.3 輸入流讀數據,輸出流寫數據
int b = 0;
//這個bis.read()它不是讀一個字節,內部是讀8192個字節
while(( b = bis.read()) != -1){
//System.out.println(b);
//輸出流寫數據
bos.write(b);
}
//關閉緩沖流
bis.close();//內部會關閉fis 流
bos.close();//內部會關閉 fos 流
System.out.println("文件拷貝完成");
}
}