在vb中将字节数组转换为二进制的更快方法?

时间:2017-06-27 09:03:47

标签: arrays vb.net binary bit-manipulation

我想将我的bytearray转换为二进制文件,例如ex:“01010101”。使用小文件,它可以毫无问题地转换,但转换大文件需要太长时间(即使只有5mb,我想不到任何大于此)。有没有更快的方法将这个bytearray转换为二进制,反之亦然? 这是我的代码

proguard-android.txt

1 个答案:

答案 0 :(得分:2)

您在conv_ByteToBin方法中连接非常大的字符串。在这种情况下,使用基本字符串连接是非常糟糕的做法,似乎这是你的瓶颈。我只是将该方法更改为使用StringBuilder,因为它是连接大字符串的有效方法,代码运行得更快,更快:

Public Function conv_ByteToBin(ByVal conv() As Byte) As String
    Dim newBin As New StringBuilder

    For Each c In conv
        newBin.Append(Convert.ToString(c, 2).PadLeft(8, "0"))
    Next
    Console.WriteLine("Returning value")

    Return newBin.ToString
End Function

最佳做法提示:

  • 始终在方法中使用返回类型
  • FileStream实现iDisposable - 始终使用块与实现iDisposable的对象

此外,你的方法conv_FileToByte是无关紧要的,因为.net已经内置File.ReadAllBytes - 方法做同样的事情。只需调用它并删除您自己的实现。

相关问题