最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java加速讀取復(fù)制超大文件

 更新時間:2020年11月30日 17:09:39   作者:lddroid  
這篇文章主要為大家詳細(xì)介紹了Java加速讀取復(fù)制超大文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

用文件通道(FileChannel)來實(shí)現(xiàn)文件復(fù)制,供大家參考,具體內(nèi)容如下

不考慮多線程優(yōu)化,單線程文件復(fù)制最快的方法是(文件越大該方法越有優(yōu)勢,一般比常用方法快30+%):

直接上代碼:

package test;
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.channels.FileChannel;

 public class Test {
public static void main(String[] args) {
File source = new File("E:\\tools\\fmw_12.1.3.0.0_wls.jar");
File target = new File("E:\\tools\\fmw_12.1.3.0.0_wls-copy.jar");
long start, end;

start = System.currentTimeMillis();
fileChannelCopy(source, target);
end = System.currentTimeMillis();
System.out.println("文件通道用時:" + (end - start) + "毫秒");

start = System.currentTimeMillis();
copy(source, target);
end = System.currentTimeMillis();
System.out.println("普通緩沖用時:" + (end - start) + "毫秒");
}

/**
 * 使用文件通道的方式復(fù)制文件
 * @param source 源文件
 * @param target 目標(biāo)文件
 */
 public static void fileChannelCopy(File source, File target) {


  FileInputStream in = null;
  FileOutputStream out = null;
  FileChannel inChannel = null;
  FileChannel outChannel = null;
  try {
  in = new FileInputStream(source);
  out = new FileOutputStream(target);
  inChannel = in.getChannel();//得到對應(yīng)的文件通道
  outChannel = out.getChannel();//得到對應(yīng)的文件通道
  inChannel.transferTo(0, inChannel.size(), outChannel);//連接兩個通道,并且從inChannel通道讀取,然后寫入outChannel通道
 } catch (IOException e) {
  e.printStackTrace();
  } finally {
  try {
   in.close();
   inChannel.close();
   out.close();
   outChannel.close();
  } catch (IOException e) {
   e.printStackTrace();
  }


  }


 }
 
/**
* 普通緩沖復(fù)制
* @param source 源文件
* @param target 目標(biāo)文件
*/
public static void copy (File source, File target) {
InputStream in = null;
BufferedOutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(source));
out = new BufferedOutputStream(new FileOutputStream(target));
byte[] buf = new byte[4096];
int i;
while ((i = in.read(buf)) != -1) {
out.write(buf, 0, i);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != in) {
in.close();
}
if (null != out) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
 }

 }

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

相關(guān)文章

  • SpringSecurity默認(rèn)登錄頁的使用示例教程

    SpringSecurity默認(rèn)登錄頁的使用示例教程

    Spring 是非常流行和成功的 Java 應(yīng)用開發(fā)框架,Spring Security 正是 Spring 家族中的成員,Spring Security 基于 Spring 框架,提供了一套 Web 應(yīng)用安全性的完整解決方案,本文給大家介紹SpringSecurity的默認(rèn)登錄頁的使用教程,感興趣的朋友一起看看吧
    2023-12-12
  • Java用Arrays.fill()初始化二維數(shù)組的實(shí)現(xiàn)

    Java用Arrays.fill()初始化二維數(shù)組的實(shí)現(xiàn)

    這篇文章主要介紹了Java用Arrays.fill()初始化二維數(shù)組的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java 選擇、冒泡排序、折半查找(實(shí)例講解)

    Java 選擇、冒泡排序、折半查找(實(shí)例講解)

    下面小編就為大家?guī)硪黄狫ava 選擇、冒泡排序、折半查找(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 解決Maven多模塊編譯慢的問題

    解決Maven多模塊編譯慢的問題

    這篇文章主要介紹了Maven多模塊編譯慢的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot整合Redis、ApachSolr和SpringSession的示例

    SpringBoot整合Redis、ApachSolr和SpringSession的示例

    本篇文章主要介紹了SpringBoot整合Redis、ApachSolr和SpringSession的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Java判斷字符串回文的代碼實(shí)例

    Java判斷字符串回文的代碼實(shí)例

    在本篇文章里小編給各位整理的是一篇關(guān)于Java判斷字符串回文的代碼實(shí)例內(nèi)容,需要的朋友們可以跟著學(xué)習(xí)參考下。
    2020-02-02
  • java UDP實(shí)現(xiàn)一個聊天工具的示例代碼

    java UDP實(shí)現(xiàn)一個聊天工具的示例代碼

    這篇文章主要介紹了java UDP實(shí)現(xiàn)一個聊天工具的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot+Mybatis-plus實(shí)現(xiàn)分頁查詢的示例代碼

    SpringBoot+Mybatis-plus實(shí)現(xiàn)分頁查詢的示例代碼

    本文主要介紹了SpringBoot+Mybatis-plus實(shí)現(xiàn)分頁查詢的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • JAVA中的Configuration類詳解

    JAVA中的Configuration類詳解

    這篇文章主要介紹了JAVA中的Configuration類詳解,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 猜數(shù)游戲java實(shí)現(xiàn)代碼

    猜數(shù)游戲java實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)猜數(shù)游戲代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論

饶平县| 乐陵市| 德昌县| 富川| 彰武县| 手游| 调兵山市| 中牟县| 杨浦区| 全州县| 宿迁市| 遂溪县| 香格里拉县| 蕉岭县| 夏河县| 嘉义县| 金秀| 汉川市| 台北市| 永川市| 平乐县| 蓬莱市| 社旗县| 北宁市| 大港区| 桂阳县| 垣曲县| 洛川县| 石台县| 武功县| 建湖县| 威信县| 磐石市| 尤溪县| 景泰县| 海阳市| 瑞丽市| 保德县| 涟水县| 化州市| 雅安市|