今天就跟大家聊聊有关VB.NET中怎么对二进制文件进行操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
VB.NET二进制文件操作主要应用的方法和函数有:Open,Close,Get,Put等。
Open:在For后面的打开模式要用Binary。
Close:关闭文件。
Get:在指定位置取得文件的内容,如果省略位置则从当前位置读取。
Put:在指定位置写入文件,如果省略位置参数就从当前位置写。
下面结合代码讲解VB.NET二进制文件的操作
下述程序完成了将两个文件结合成一个文件以及将这个结合后的文件再拆分成原来的两个文件。文件头的结构是自己定义的,非常简单,共8个字节(也就是两个长整型的长度),前4个字节存放***个文件的长度,后4个字节存放第二个文件的长度。为了更直观地表达文件的结构,现假设有两个文件,***个文件长度是100字节,第二个文件是200字节,那么合并后得到的文件应该是308字节。按顺序来看,文件的结构是:
4***文件的长度
4第二文件的长度
100***文件的二进制内容
200第二文件的二进制内容
除了文件头的8字节长度是固定的后面的长度都会因文件的不同而变化的。
‘实现文件的合并 Private Sub MergeFile() Dim strFileName1 As String '***个文件 Dim strFileName2 As String '第二个文件 Dim strOutput As String '合并后的文件 Dim aryContent() As Byte '用来读取文件的数组,每次读取前要重定义 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) '重定义数组,为读取文件做准备 Get #1, , aryContent() '取得***文件的内容到数组 Put #100, , aryContent() '把***文件的内容写到合并文件中 ReDim aryContent(LOF(2) - 1) Get #2, , aryContent() Put #100, , aryContent() '关闭文件 Close #1 Close #2 Close #100 End Sub ‘实现文件的拆分 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) '用***文件的长度重定义数组,为读取***文件做准备 Get #100, 9, aryContent() '从第9字节,即文件后面开始读取***文件的内容 Put #1, , aryContent() '把取得的内容写入到拆分文件中 ReDim aryContent(lngLOF(1)-1) Get #100, 9 + lngLOF(0) + 1, aryContent() '从第9字节再加上***文件的长度处开始读取第二文件的内容,这里可以清楚地看到文件头的作用了 Put #2, , aryContent Close #1 Close #2 Close #100 MsgBox "拆分完成。", vbInformation
看完上述内容,你们对VB.NET中怎么对二进制文件进行操作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。