使用udp資料報傳送檔案時,由於udp資料報大小的限制,乙個檔案要放在幾個udp資料報裡面傳送,這就需要把乙個檔案分割成若干部分,分別放進若干個udp資料報裡面,在接收端,收到這些udp資料報以後,再對檔案進行組裝,從而得到乙個完整的檔案。
// 要分割的檔案
public static randomaccessfile raf_split;
// 要合併的檔案
public static randomaccessfile raf_merge;
// 檔案長度
public static long len;
// byte陣列
public static int offset;
public static int os = 5;
public static int size = 1024-os;
public static byte file_data = new byte[1024];
fileoperclass類實現檔案的分割和組裝操作:
// 建構函式(0-分割檔案,1-合併檔案)
public fileoperclass(string file, int x)
catch (exception e)
} // 合併檔案
else if (x == 1)
catch (exception e)
} }
分割檔案:
// 分割檔案並傳送
public static void split()
// 記錄最後乙個資料報剩餘位元組的資料報
// 資料報型別
file_data[0] = (byte) 2;
// 客戶端id
file_data[1] = (byte) mainactivity.cli_id;
// 會話id
file_data[2] = (byte) mainactivity.ses_id;
// 該會話資料報數量
file_data[3] = (byte) pnum;
// 資料報id
file_data[4] = (byte) p_id;
m1 = pmod / 128;
m2 = pmod % 128;
file_data[5] = (byte) m1;
file_data[6] = (byte) m2;
// 傳送資料報
mainactivity.trd_send.set_action(2, file_data);
} catch (exception e)
finally
catch(exception err)
} }
合併檔案:
// 合併檔案
public static void merge()
}for (i=0; i// 最後乙個byte陣列寫進檔案
raf_merge.write(tmp_byte[mainactivity.mer_pkt_num-1],
os, mainactivity.mer_pkt_mod );
} catch(exception e)
finally
catch(exception err)
} }
Linux或Android下分割大檔案的方法
1 作為測試人員或開發人員經常抓log,常用的命令就是 adb shell logcat v time mnt sdcard 執行上面上面的命令後再sd卡下不停的輸出log檔案有時候抓幾天幾夜log檔案會達到幾十個g,當出現問題是我們常用的日誌檢視工具無法開啟這麼大的檔案,並且也沒有什麼好的分割工具...
分割檔案的指令碼
今天需要把乙個2百萬的號碼檔案按行分割成500 個的小檔案,當然用linux來做很方便 首選split split version split coreutils 5.2.1 written by torbjorn granlund and richard m.stallman.我的版本支援按行分割...
Android之ListView中的分割線
listview中每個item項之間都有分割線,設定android footerdividersenabled表示是否顯示分割線,此屬性預設為true。1.不顯示分割線只要在listview控制項中新增android footerdividersenabled false 即可。listview a...