將大檔案拆分並重新合併

2021-10-12 02:56:00 字數 1410 閱讀 8285

實現思路:

將大檔案拆分

因為拆分的可以是任何檔案,所有這裡使用位元組流進行拆分

可以利用緩衝區來對檔案進行拆分,如每次讀取400mb的類容將其寫成乙個新的檔案

拆分的檔案需要順序標明,以便正確順序還原

首先定義方法,我這裡給兩個引數,分別是目標檔案的路徑與拆分後寫入的路徑。

// 將大檔案拆分成最大400mb的檔案

public

static

void

test2

(file src, file dest)

throws ioexception

// 建立位元組流

fileinputstream fis =

newfileinputstream

(src)

;// 建立乙個400mb的緩衝區

byte

bs =

newbyte

[1024

*1024

*400];

// 用於給檔案序號

int count =1;

int len =0;

while

((len = fis.

read

(bs))!=

-1) fis.

close()

;}}

將檔案合併

合併檔案我們需要使用到合併流,合併流的構造需要傳入inputstream或enumeration型別的引數

我們可以將每個檔案以流的形式存入vector集合中。

// 將目錄下的檔案存入vector集合中

public

static vector getallfile

(file src)

throws ioexception }}

return vector;

}

通過vector的elements()方法獲取enumeration物件,並建立合併流

// 合併目錄中的檔案

public

static

void

mergetest

(file src, file dest)

throws ioexception

sis.

close()

; fos.

close()

;}}

main方法測試

public

static

void

main

(string[

] args)

throws ioexception

大檔案拆分

fp e logtest u ex160314.log 原檔名稱 fname e logtest u ex160314 新檔名稱 fsize 1024 1024 1mb,定義每個新檔案的大小 num 1 新檔名後 1 sum 0 每個新檔案的當前大小 with open fp,rb as fo fo...

php將大檔案平均拆分成小檔案

最近獲得了乙個40多萬行資料的檔案,需要把這個大檔案分成小檔案,在做完這件事之後,寫個文件記錄一下。相關主要函式 輸出 0 272731 321343 269707200 30這些函式提供的功能,可以給拆分檔案提供乙個思路 將指標不斷地移動相同的位數,每移動一次指標得到乙個等長字串,將等長字串寫入新...

大檔案拆分與合併指令碼(Python3 8)

更多常用方法封裝和指令碼彙總歡迎移步 下面直接貼 usr bin env python coding utf 8 date 2020 11 16 20 33 author joy version python3.8 import os,re defnormal path args return os...