java使用緩沖流復制文件的方法
更新時間:2018年08月20日 10:05:43 作者:Killer-V
這篇文章主要為大家詳細介紹了java使用緩沖流復制文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了java使用緩沖流復制文件的具體代碼,供大家參考,具體內(nèi)容如下
[1] 程序設(shè)計
/*------------------------------- 1.緩沖流是一種處理流,用來加快節(jié)點流對文件操作的速度 2.BufferedInputStream:輸入緩沖流 3.BufferedOutputStream:輸出緩沖流 4.在正常的Java開發(fā)中都使用緩沖流來處理文件,因為這樣可以提高文件處理的效率 5.這里設(shè)計程序:使用緩沖流復制一個較大的視頻文件 --------------------------------*/ package pack04; import java.io.*; public class CopyFile { public static void main(String[] args) { String src = "d:/TEST/加勒比海盜-黑珍珠號的詛咒.rmvb"; //源文件路徑,該文件大小為3.01GB String dst = "d:/TEST/加勒比海盜-黑珍珠號的詛咒-Java復制.rmvb"; //目標文件路徑 long startTime = System.currentTimeMillis(); //獲取復制前的系統(tǒng)時間 copy(src, dst); long endTime = System.currentTimeMillis(); //獲取復制后的系統(tǒng)時間 System.out.println("spend time: " + (endTime-startTime) ); //輸出復制需要的時間,毫秒計 } //定義一個用于復制文件的靜態(tài)方法,參數(shù)src代表源文件路徑,參數(shù)dst代表目標文件路徑 public static void copy(String src, String dst) { //提供需要讀入和寫入的文件 File fileIN = new File(src); File fileOUT = new File(dst); BufferedInputStream bis = null; BufferedOutputStream bos = null; try { //創(chuàng)建相應的節(jié)點流,將文件對象作為形參傳遞給節(jié)點流的構(gòu)造器 FileInputStream fis = new FileInputStream(fileIN); FileOutputStream fos = new FileOutputStream(fileOUT); //創(chuàng)建相應的緩沖流,將節(jié)點流對象作為形參傳遞給緩沖流的構(gòu)造器 bis = new BufferedInputStream(fis); bos = new BufferedOutputStream(fos); //具體的文件復制操作 byte[] b = new byte[65536]; //把從輸入文件讀取到的數(shù)據(jù)存入該數(shù)組 int len; //記錄每次讀取數(shù)據(jù)并存入數(shù)組中后的返回值,代表讀取到的字節(jié)數(shù),最大值為b.length;當輸入文件被讀取完后返回-1 while( (len=bis.read(b)) != -1 ) { bos.write(b, 0, len); bos.flush(); } } catch(IOException e) { e.printStackTrace(); } finally { //關(guān)閉流,遵循先開后關(guān)原則(這里只需要關(guān)閉緩沖流即可) try { bos.close(); } catch (IOException e) { e.printStackTrace(); } try { bis.close(); } catch (IOException e) { e.printStackTrace(); } } } }
[2] 測試結(jié)果
測試結(jié)果顯示,復制3.01GB大小的文件所用的時間約為1min。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java的外部類為什么不能使用private和protected進行修飾的講解
今天小編就為大家分享一篇關(guān)于Java的外部類為什么不能使用private和protected進行修飾的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04springboot連接多個數(shù)據(jù)庫的實現(xiàn)方法
有時候一個SpringBoot項目需要同時連接兩個數(shù)據(jù)庫,本文就來介紹一下springboot連接多個數(shù)據(jù)庫的實現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下2024-08-08spring boot定時任務接收郵件并且存儲附件的方法講解
今天小編就為大家分享一篇關(guān)于spring boot定時任務接收郵件并且存儲附件的方法講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03高效數(shù)據(jù)傳輸?shù)拿孛芪淦鱌rotobuf的使用教程
Protobuf(Protocol?Buffers)是由?Google?開發(fā)的一種輕量級、高效的數(shù)據(jù)交換格式,它被用于結(jié)構(gòu)化數(shù)據(jù)的序列化、反序列化和傳輸,本文主要介紹了它的具體使用方法,需要的可以參考一下2023-05-05使用maven整合Spring+SpringMVC+Mybatis框架詳細步驟(圖文)
這篇文章主要介紹了使用maven整合Spring+SpringMVC+Mybatis框架詳細步驟(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05