.net 文件I/O帮助,而不是文件打开

.net 文件I/O帮助,而不是文件打开,.net,vb.net,.net,Vb.net,因此,我一直在我的.net应用程序中正常使用FileOpen、FileGet和FileClose。然而,一位朋友告诉我,我应该改用IO,因为它速度更快,而且总体上更好。我一直在看这些文件,我仍然有点困惑。以下是我的文件活页夹原始代码: 'Opens file1 by user choice and gets contents FileOpen(1, TextBox1.Text, OpenMode.Binary, OpenAccess.Read, OpenShare.Default) filein

因此,我一直在我的.net应用程序中正常使用FileOpen、FileGet和FileClose。然而,一位朋友告诉我,我应该改用IO,因为它速度更快,而且总体上更好。我一直在看这些文件,我仍然有点困惑。以下是我的文件活页夹原始代码:

'Opens file1 by user choice and gets contents
FileOpen(1, TextBox1.Text, OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
filein = Space(LOF(1))
FileGet(1, filein)
FileClose(1)

'Opens file2 and gets contents
FileOpen(1, Application.StartupPath & "\file2.exe", OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
file2 = Space(LOF(1))
FileGet(1, file2)
FileClose(1)

'Opens final file that will contain both binded files
FileOpen(1, filename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
FilePut(1, file2 & filesplit & filein)
FileClose(1)

我尝试过使用IO.File.writealBytes和IO.File.writealText,但没有成功。我将如何更改代码以使用IO?谢谢

以下是可用于将文件读入字节数组的代码:

Dim aBytes As Byte() = Nothing

Using oStream As New FileStream(sFileName, FileMode.Open, FileAccess.Read)
    If oStream IsNot Nothing Then
        Dim wLen As Integer

        wLen = CInt(New FileInfo(PathName).Length)
        ReDim aBytes(wLen - 1)
        oStream.Read(aBytes, 0, wLen)
        oStream.Close()
    End If
End Using
要将字节数组写入文件,请执行以下操作:

File.WriteAllBytes(sFileName, aBytes)

你应该向你的朋友要些证据。您使用的方法只是
System.IO
上的一层薄薄的抽象层,因此我对这些方法之间的差别期望很低。最大的问题是您将二进制数据存储在字符串中。字符串在vb.net中被规范化,这将破坏数据。您需要切换到字节数组。