将二进制文件Python读入Vb.net

时间:2014-10-09 16:29:38

标签: python vb.net file-io

我有两行简单的Python脚本,其中len(fileData)是3530

Python

   imgFile = file(inputFile, "rb")
   fileData = imgFile.read()

我正在尝试将其转换为vb.net。如果我这样做,我可以获得匹配的长度,但是我试图将数据本身实际上变为字符串变量:

VB.NET

    Using reader As New BinaryReader(File.Open(inputFile, FileMode.Open))
    Dim length As Integer = reader.BaseStream.Length
    End Using

我尝试使用

VB.NET

    Dim fileData As String = File.ReadAllText(inputFile)

但是当我做len(fileData)时,它是3528,所以有些不对劲。

我只想打开并读取二进制文件到一个字符串变量,看它的长度是3530,因为它在Python脚本中正确工作。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您错过了并非每个二进制数据都可以表示为String的事实。

如果您只想要原始数据及其长度,您可以将文件读入字节数组:

    Dim myBytes() As Byte = IO.File.ReadAllBytes("myFile.dat")
    Console.WriteLine(myBytes.Length)

如果确实需要将数据作为String,则必须考虑String的编码:

    Dim myString As String = IO.File.ReadAllText("myFile.dat", System.Text.Encoding.UTF8)        
没有第二个参数的

ReadAllText()假定编码(最有可能)Encoding.Default 这与您的系统代码页是ANSI。