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

java 流操作對(duì)文件的分割和合并的實(shí)例詳解

 更新時(shí)間:2017年10月10日 14:36:55   作者:每天都在變得更好的阿飛  
這篇文章主要介紹了java 流操作對(duì)文件的分割和合并的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下

java 流操作對(duì)文件的分割和合并的實(shí)例詳解

學(xué)習(xí)文件的輸入輸出流,自己做一個(gè)小的示例,對(duì)文件進(jìn)行分割和合并。

    下面是代碼:

package com.dufy.file; 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.SequenceInputStream; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Enumeration; 
import java.util.List; 
/** 
 * 文件的切割和合并 
 * 1.要切割和合并文件:主要考慮的就是文件的源地址,目標(biāo)地址,暫存文件地址和文件名稱(chēng) 
 * 2.切割文件:判斷給的暫存地址是否存在,不存在,則創(chuàng)建;從源地址中讀出文件,按照給定的大小進(jìn)行文件的切割操作放入暫存地址中 
 * 3.合并文件:判斷給定的目標(biāo)地址是否存在,不存在,則創(chuàng)建;定義List集合將暫存地址中的文件全部讀取出來(lái),放到list集合中 
 *     然后使用Enumeration列舉出所有文件,合并流合并文件 
 *     最后寫(xiě)入到目標(biāo)的地址中 
 * 注:本例子中所有的異常都采用拋出的方式處理 
 * @author aflyun 
 * 
 */ 
public class TestFileCutUnion { 
 
  public static void main(String[] args) throws IOException { 
     
    String fSrc = "D:/1.jpg";//源文件的目錄 
    String fDir = "D:/1";//目標(biāo)文件的目錄 
    String fTemp = "D:/2";//暫存文件的目錄 
    File srcFile = new File(fSrc); 
    File dirFile = new File(fDir); 
    File tempFile = new File(fTemp); 
    String fileName = srcFile.getName();//獲取文件的名稱(chēng) 
    cutFile(srcFile,tempFile);//調(diào)用分割方法 
    unionFile(dirFile,tempFile,fileName);//調(diào)用合并方法 
     
     
  } 
   
  /** 
   * 切割文件 
   * @param srcFile 
   * @param tempFile 
   * @throws IOException 
   */ 
   
  public static void cutFile(File srcFile, File tempFile) throws IOException { 
    //讀取源地址文件 
    FileInputStream fis = new FileInputStream(srcFile); 
    FileOutputStream fos = null; 
    //是否為文件,不是就創(chuàng)建 
    if(!tempFile.isFile()){ 
      tempFile.mkdirs(); 
    } 
   
    byte[] b = new byte[100]; 
    int len =0; 
    int count = 0; 
    while((len=fis.read(b)) != -1){ 
      int num = count++; 
      //寫(xiě)入暫存地址目錄中 
      fos = new FileOutputStream(new File(tempFile, num+".part")); 
      fos.write(b, 0, len); 
       
    } 
    fos.flush(); 
    fos.close(); 
    fis.close(); 
     
    System.out.println("分割完成!"); 
  } 
  /** 
   * 合并文件 
   * @param dirFile 
   * @param tempFile 
   * @param fileName 
   * @throws IOException 
   */ 
  public static void unionFile(File dirFile, File tempFile, String fileName) throws IOException { 
    //判斷目標(biāo)地址是否存在,不存在則創(chuàng)建 
    if(!dirFile.isFile()){ 
      dirFile.mkdirs(); 
    } 
    List<FileInputStream> list = new ArrayList<FileInputStream>(); 
    //獲取暫存地址中的文件 
    File[] files = tempFile.listFiles(); 
     
    for (int i = 0; i < files.length; i++) { 
      //用FileInputStream讀取放入list集合 
      list.add(new FileInputStream(new File(tempFile, i+".part"))); 
    } 
    //使用 Enumeration(列舉) 將文件全部列舉出來(lái) 
    Enumeration<FileInputStream> eum = Collections.enumeration(list); 
    //SequenceInputStream合并流 合并文件 
    SequenceInputStream sis = new SequenceInputStream(eum); 
    FileOutputStream fos = new FileOutputStream(new File(dirFile, fileName)); 
    byte[] by = new byte[100]; 
    int len; 
    while((len=sis.read(by)) != -1){ 
      fos.write(by, 0, len); 
    } 
    fos.flush(); 
    fos.close(); 
    sis.close(); 
    System.out.println("合并完成!"); 
  } 
} 

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 詳解Spring事務(wù)回滾和事務(wù)提交

    詳解Spring事務(wù)回滾和事務(wù)提交

    這篇文章主要介紹了詳解Spring事務(wù)回滾和事務(wù)提交的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用spring框架,感興趣的朋友可以了解下
    2021-03-03
  • Java與Unix時(shí)間戳的相互轉(zhuǎn)換詳解

    Java與Unix時(shí)間戳的相互轉(zhuǎn)換詳解

    這篇文章主要為大家詳細(xì)介紹了Java與Unix時(shí)間戳的相互轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java中常用數(shù)據(jù)類(lèi)型的輸入輸出詳解

    Java中常用數(shù)據(jù)類(lèi)型的輸入輸出詳解

    本文主要介紹了Java中幾個(gè)常用的數(shù)據(jù)類(lèi)型是如何輸入和輸出的,例如:Char型、int型、double型、數(shù)組、字符串等,對(duì)我們學(xué)習(xí)java有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)學(xué)習(xí)
    2021-12-12
  • java版十大排序經(jīng)典算法:完整代碼(2)

    java版十大排序經(jīng)典算法:完整代碼(2)

    優(yōu)秀的文章也不少,但是Java完整版的好像不多,我把所有的寫(xiě)一遍鞏固下,同時(shí)也真誠(chéng)的希望閱讀到這篇文章的小伙伴們可以自己去從頭敲一遍,不要粘貼復(fù)制!希望我的文章對(duì)你有所幫助,每天進(jìn)步一點(diǎn)點(diǎn)
    2021-07-07
  • 解密Java?Map如何高效地操作鍵值對(duì)

    解密Java?Map如何高效地操作鍵值對(duì)

    Map是Java中非常重要的數(shù)據(jù)結(jié)構(gòu)之一,它存儲(chǔ)鍵值對(duì),可以通過(guò)鍵快速查找對(duì)應(yīng)的值,是我們?cè)趯?shí)際開(kāi)發(fā)中使用最為頻繁的數(shù)據(jù)結(jié)構(gòu)之一,下面小編就來(lái)和大家探討一下Map是如何高效地操作鍵值對(duì)的吧
    2023-09-09
  • 去掉IntelliJ IDEA 中 mybatis 對(duì)應(yīng)的 xml 文件警告的教程圖解

    去掉IntelliJ IDEA 中 mybatis 對(duì)應(yīng)的 xml 文件警告的教程圖解

    本文通過(guò)圖文并茂的形式給大家介紹了去掉IntelliJ IDEA 中 mybatis 對(duì)應(yīng)的 xml 文件警告的教程,需要的朋友可以參考下
    2018-06-06
  • JNDI簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    JNDI簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了JNDI簡(jiǎn)介,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java反射技術(shù)原理與用法實(shí)例分析

    Java反射技術(shù)原理與用法實(shí)例分析

    這篇文章主要介紹了Java反射技術(shù)原理與用法,結(jié)合實(shí)例形式分析了Java反射技術(shù)的基本概念、功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • Java中的static和final關(guān)鍵字的使用詳解

    Java中的static和final關(guān)鍵字的使用詳解

    這篇文章主要介紹了Java中的static和final關(guān)鍵字的使用詳解,  當(dāng)方法名前有static,即為static方法,可以方便我們無(wú)需創(chuàng)建對(duì)象也可以調(diào)用此方法,靜態(tài)方法比較拉,只可以訪問(wèn) 靜態(tài)的 屬性/變量/方法,無(wú)法訪問(wèn)非靜態(tài)的這些屬性/變量/方法,需要的朋友可以參考下
    2024-01-01
  • springBoot項(xiàng)目如何實(shí)現(xiàn)啟動(dòng)多個(gè)實(shí)例

    springBoot項(xiàng)目如何實(shí)現(xiàn)啟動(dòng)多個(gè)實(shí)例

    這篇文章主要介紹了springBoot項(xiàng)目如何實(shí)現(xiàn)啟動(dòng)多個(gè)實(shí)例的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

麟游县| 广安市| 贵溪市| 阳原县| 丹阳市| 庐江县| 于田县| 勃利县| 甘洛县| 玛曲县| 南平市| 富民县| 望谟县| 称多县| 天长市| 科技| 霍林郭勒市| 苍山县| 商河县| 聂荣县| 钟祥市| 建德市| 阿勒泰市| 九龙城区| 盱眙县| 定安县| 鄂州市| 高碑店市| 莱阳市| 清丰县| 曲阳县| 南部县| 邢台市| 崇阳县| 马公市| 三原县| 平顺县| 岱山县| 巍山| 鞍山市| 凌源市|