今天就跟大家聊聊有關(guān)VB.NET中怎么對二進(jìn)制文件進(jìn)行操作,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
圖們網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
VB.NET二進(jìn)制文件操作主要應(yīng)用的方法和函數(shù)有:Open,Close,Get,Put等。
Open:在For后面的打開模式要用Binary。
Close:關(guān)閉文件。
Get:在指定位置取得文件的內(nèi)容,如果省略位置則從當(dāng)前位置讀取。
Put:在指定位置寫入文件,如果省略位置參數(shù)就從當(dāng)前位置寫。
下面結(jié)合代碼講解VB.NET二進(jìn)制文件的操作
下述程序完成了將兩個文件結(jié)合成一個文件以及將這個結(jié)合后的文件再拆分成原來的兩個文件。文件頭的結(jié)構(gòu)是自己定義的,非常簡單,共8個字節(jié)(也就是兩個長整型的長度),前4個字節(jié)存放***個文件的長度,后4個字節(jié)存放第二個文件的長度。為了更直觀地表達(dá)文件的結(jié)構(gòu),現(xiàn)假設(shè)有兩個文件,***個文件長度是100字節(jié),第二個文件是200字節(jié),那么合并后得到的文件應(yīng)該是308字節(jié)。按順序來看,文件的結(jié)構(gòu)是:
4***文件的長度
4第二文件的長度
100***文件的二進(jìn)制內(nèi)容
200第二文件的二進(jìn)制內(nèi)容
除了文件頭的8字節(jié)長度是固定的后面的長度都會因文件的不同而變化的。
‘實現(xiàn)文件的合并 Private Sub MergeFile() Dim strFileName1 As String '***個文件 Dim strFileName2 As String '第二個文件 Dim strOutput As String '合并后的文件 Dim aryContent() As Byte '用來讀取文件的數(shù)組,每次讀取前要重定義 strFileName1 = "c:\a.bmp" strFileName2 = "c:\.bmp" strOutput = "c:\out.bmp" '注意下面三個Open語句都是用Binary模式打開的 Open strOutput For Binary As #100 Open strFileName1 For Binary As #1 Open strFileName2 For Binary As #2 Put #100, , LOF(1) '取得***文件的長度,并把它寫入到合并文件的文件頭中 Put #100, , LOF(2) '取得第二文件的長度,并寫入到合并文件的文件頭中 ReDim aryContent(LOF(1) - 1) '重定義數(shù)組,為讀取文件做準(zhǔn)備 Get #1, , aryContent() '取得***文件的內(nèi)容到數(shù)組 Put #100, , aryContent() '把***文件的內(nèi)容寫到合并文件中 ReDim aryContent(LOF(2) - 1) Get #2, , aryContent() Put #100, , aryContent() '關(guān)閉文件 Close #1 Close #2 Close #100 End Sub ‘實現(xiàn)文件的拆分 Private Sub SplitFile() Dim strFileName1 As String Dim strFileName2 As String Dim strFileSplit As String Dim aryContent() As Byte Dim lngLOF(1) As Long '存放從文件頭取得的兩個文件的長度 strFileName1 = "c:\a2.bmp" strFileName2 = "c:\2.bmp" strFileSplit = "c:\out.bmp" Open strFileSplit For Binary As #100 Get #100, , lngLOF(0) '取得***文件的長度 Get #100, , lngLOF(1) '第二文件的長度 Open strFileName1 For Binary As #1 Open strFileName2 For Binary As #2 ReDim aryContent(lngLOF(0)-1) '用***文件的長度重定義數(shù)組,為讀取***文件做準(zhǔn)備 Get #100, 9, aryContent() '從第9字節(jié),即文件后面開始讀取***文件的內(nèi)容 Put #1, , aryContent() '把取得的內(nèi)容寫入到拆分文件中 ReDim aryContent(lngLOF(1)-1) Get #100, 9 + lngLOF(0) + 1, aryContent() '從第9字節(jié)再加上***文件的長度處開始讀取第二文件的內(nèi)容,這里可以清楚地看到文件頭的作用了 Put #2, , aryContent Close #1 Close #2 Close #100 MsgBox "拆分完成。", vbInformation
看完上述內(nèi)容,你們對VB.NET中怎么對二進(jìn)制文件進(jìn)行操作有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。