欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java使用緩沖流復(fù)制文件的方法

 更新時(shí)間:2018年08月20日 10:05:43   作者:Killer-V  
這篇文章主要為大家詳細(xì)介紹了java使用緩沖流復(fù)制文件的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java使用緩沖流復(fù)制文件的具體代碼,供大家參考,具體內(nèi)容如下

[1] 程序設(shè)計(jì)

/*-------------------------------
1.緩沖流是一種處理流,用來(lái)加快節(jié)點(diǎn)流對(duì)文件操作的速度
2.BufferedInputStream:輸入緩沖流
3.BufferedOutputStream:輸出緩沖流
4.在正常的Java開發(fā)中都使用緩沖流來(lái)處理文件,因?yàn)檫@樣可以提高文件處理的效率
5.這里設(shè)計(jì)程序:使用緩沖流復(fù)制一個(gè)較大的視頻文件
--------------------------------*/
package pack04;

import java.io.*;

public class CopyFile {

 public static void main(String[] args) {
 
  String src = "d:/TEST/加勒比海盜-黑珍珠號(hào)的詛咒.rmvb"; //源文件路徑,該文件大小為3.01GB
  String dst = "d:/TEST/加勒比海盜-黑珍珠號(hào)的詛咒-Java復(fù)制.rmvb"; //目標(biāo)文件路徑
  
  long startTime = System.currentTimeMillis(); //獲取復(fù)制前的系統(tǒng)時(shí)間
  copy(src, dst);
  long endTime = System.currentTimeMillis(); //獲取復(fù)制后的系統(tǒng)時(shí)間
  
  System.out.println("spend time: " + (endTime-startTime) ); //輸出復(fù)制需要的時(shí)間,毫秒計(jì)
  
 }
 
 //定義一個(gè)用于復(fù)制文件的靜態(tài)方法,參數(shù)src代表源文件路徑,參數(shù)dst代表目標(biāo)文件路徑
 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)建相應(yīng)的節(jié)點(diǎn)流,將文件對(duì)象作為形參傳遞給節(jié)點(diǎn)流的構(gòu)造器
   FileInputStream fis = new FileInputStream(fileIN);
   FileOutputStream fos = new FileOutputStream(fileOUT);
   
   //創(chuàng)建相應(yīng)的緩沖流,將節(jié)點(diǎn)流對(duì)象作為形參傳遞給緩沖流的構(gòu)造器
   bis = new BufferedInputStream(fis);
   bos = new BufferedOutputStream(fos);
   
   //具體的文件復(fù)制操作
   byte[] b = new byte[65536]; //把從輸入文件讀取到的數(shù)據(jù)存入該數(shù)組
   int len; //記錄每次讀取數(shù)據(jù)并存入數(shù)組中后的返回值,代表讀取到的字節(jié)數(shù),最大值為b.length;當(dāng)輸入文件被讀取完后返回-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] 測(cè)試結(jié)果

測(cè)試結(jié)果顯示,復(fù)制3.01GB大小的文件所用的時(shí)間約為1min。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java Socket實(shí)現(xiàn)單線程通信的方法示例

    Java Socket實(shí)現(xiàn)單線程通信的方法示例

    這篇文章主要介紹了Java Socket實(shí)現(xiàn)單線程通信的方法,結(jié)合具體實(shí)例形式分析了java socket單線程通信的原理與客戶端、服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • 詳解Java中KMP算法的圖解與實(shí)現(xiàn)

    詳解Java中KMP算法的圖解與實(shí)現(xiàn)

    KMP算法是一種神奇的字符串匹配算法,在對(duì)超長(zhǎng)字符串進(jìn)行模板匹配的時(shí)候比暴力匹配法的效率會(huì)高不少。本文將利用圖解為大家詳細(xì)講解KMP算法的實(shí)現(xiàn),需要的可以參考一下
    2022-05-05
  • IDEA JAVA項(xiàng)目熱加載的實(shí)現(xiàn)步驟

    IDEA JAVA項(xiàng)目熱加載的實(shí)現(xiàn)步驟

    熱加載可以使代碼修改后無(wú)須重啟服務(wù)器,就可以加載更改的代碼,本文主要介紹了IDEA JAVA項(xiàng)目熱加載的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-06-06
  • Java的外部類為什么不能使用private和protected進(jìn)行修飾的講解

    Java的外部類為什么不能使用private和protected進(jìn)行修飾的講解

    今天小編就為大家分享一篇關(guān)于Java的外部類為什么不能使用private和protected進(jìn)行修飾的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • tk.mybatis擴(kuò)展通用接口使用詳解

    tk.mybatis擴(kuò)展通用接口使用詳解

    這篇文章主要介紹了tk.mybatis擴(kuò)展通用接口使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • java事務(wù)的概念淺析

    java事務(wù)的概念淺析

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java事務(wù)的概念淺析,有興趣的朋友們可以參考學(xué)習(xí)下。
    2020-12-12
  • springboot連接多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法

    springboot連接多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法

    有時(shí)候一個(gè)SpringBoot項(xiàng)目需要同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù),本文就來(lái)介紹一下springboot連接多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • spring boot定時(shí)任務(wù)接收郵件并且存儲(chǔ)附件的方法講解

    spring boot定時(shí)任務(wù)接收郵件并且存儲(chǔ)附件的方法講解

    今天小編就為大家分享一篇關(guān)于spring boot定時(shí)任務(wù)接收郵件并且存儲(chǔ)附件的方法講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 高效數(shù)據(jù)傳輸?shù)拿孛芪淦鱌rotobuf的使用教程

    高效數(shù)據(jù)傳輸?shù)拿孛芪淦鱌rotobuf的使用教程

    Protobuf(Protocol?Buffers)是由?Google?開發(fā)的一種輕量級(jí)、高效的數(shù)據(jù)交換格式,它被用于結(jié)構(gòu)化數(shù)據(jù)的序列化、反序列化和傳輸,本文主要介紹了它的具體使用方法,需要的可以參考一下
    2023-05-05
  • 使用maven整合Spring+SpringMVC+Mybatis框架詳細(xì)步驟(圖文)

    使用maven整合Spring+SpringMVC+Mybatis框架詳細(xì)步驟(圖文)

    這篇文章主要介紹了使用maven整合Spring+SpringMVC+Mybatis框架詳細(xì)步驟(圖文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05

最新評(píng)論