最近在做畢設。今天涉及到乙個關於檔案的拆分後傳送給不同的伺服器儲存,然後後續合併的問題。這裡我發現了乙個有趣的問題。
首先是檔案大小:以下是原始檔的大小
在程式中我將該檔案分割為10份,如果按照當前計算
//path 檔案路徑
file file = new file(path);
long size = file.length() / 10;
//size 61094683
複製**
如果按照這個大小進行分割檔案的話
//file 原始檔file物件
//socket 目標伺服器的socket物件
for (int i = 0; i < 10; i++) }}
}複製**
這裡我把緩衝區設定為1k,實際上設計多少都沒問題,只要緩衝區不是根據檔案傳輸的流進行實時計算且整除檔案需要傳輸的流的話。
緩衝區會將檔案流分成一塊一塊傳送給對應伺服器,因此雖然我開始將檔案分為十分且開始位置按照分成的檔案塊數進行傳輸。但是最終傳輸過去的檔案並不是嚴格按照對應大小。 例:
第一塊檔案我從輸入流的0下標開始,目標傳遞大小為61094683b,但是實際檔案傳輸的大小一定是緩衝區大小的倍數,即最終第一塊檔案傳輸了61094912b大小的檔案。但是第二塊檔案傳輸的開始下標又是從61094683開始因此會有一部分產生重疊,詳情如圖:
而用這種方法分割並且合併後的檔案大小如下:
Python中在指令碼中引用其他檔案函式的方法
在匯入檔案的時候,python只搜尋當前指令碼所在的目錄,載入 entry point 入口指令碼執行目錄和sys.path中包含的路徑例如包的安裝位址。所以如果要在當前指令碼引用其他檔案,除了將檔案放在和指令碼同一目錄下,還有以下幾種方法,import sys import filea init ...
Python中在指令碼中引用其他檔案函式的方法
在匯入檔案的時候,python只搜尋當前指令碼所在的目錄,載入 entry point 入口指令碼執行目錄和sys.path中包含的路徑例如包的安裝位址。所以如果要在當前指令碼引用其他檔案,除了將檔案放在和指令碼同一目錄下,還有以下幾種方法,import sys import file a init...
spring中引入其他檔案
剛開始學習spring 以及springmvc mybatis 框架時能把配置檔案配置能起來就很高興了,但是當時間長了我們發現如果所有的配置都寫在乙個配置檔案中的話會很多,所以看著也痛苦,所以我們可以吧配置檔案分開配置,這樣方便之後查詢,那分開配置的方式有幾種方式那 一 xml引入 1 將配置檔案引...