我想将我的bytearray转换为二进制文件,例如ex:“01010101”。使用小文件,它可以毫无问题地转换,但转换大文件需要太长时间(即使只有5mb,我想不到任何大于此)。有没有更快的方法将这个bytearray转换为二进制,反之亦然? 这是我的代码
proguard-android.txt
答案 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
最佳做法提示:
此外,你的方法conv_FileToByte是无关紧要的,因为.net已经内置File.ReadAllBytes - 方法做同样的事情。只需调用它并删除您自己的实现。