1. 程式人生 > 實用技巧 >BIO和NIO實現檔案複製

BIO和NIO實現檔案複製

普通檔案複製

 1 public void copyFile() throws Exception{
 2         FileInputStream fis=new FileInputStream("C:\\Users\\zdx\\Desktop\\oracle.mov");
 3         FileOutputStream fos=new FileOutputStream("d:\\oracle.mov");
 4         byte[] b=new byte[1024]; while (true) {
 5             int res=fis.read(b);
6 if(res==-1){ 7 break; 8 } 9 fos.write(b,0,res); 10 } 11 fis.close(); 12 fos.close(); 13 }

分別通過輸入流和輸出流實現了檔案的複製,這是通過傳統的 BIO 實現的

NIO實現檔案複製

1  public void copyFile() throws Exception{
2         FileInputStream fis=new
FileInputStream("d:\\test.wmv"); 3 FileOutputStream fos=new FileOutputStream("d:\\test\\test.wmv"); 4 FileChannel sourceCh = fis.getChannel(); 5 FileChannel destCh = fos.getChannel(); 6 destCh.transferFrom(sourceCh, 0, sourceCh.size()); sourceCh.close(); 7 destCh.close();
8 }

分別從兩個流中得到兩個通道,sourceCh 負責讀資料,destCh 負責寫資料,然 後直接呼叫 transferFrom 方法一步到位實現了檔案複製。

轉載:https://www.cnblogs.com/baixiaoguang/p/12055903.html