У меня проблема с байтовым массивом из файла.
Я получаю байтовый массив из файла в C# и VB. Net, но на обоих языках он разный. Разница минимальна, но приводит к сбою.
Это мой код в VB. NET:
Private Function GetStreamAsByteArray(ByVal stream As System.IO.Stream) As Byte()
stream.Position = 0
Dim streamLength As Integer = Convert.ToInt32(stream.Length)
Dim fileData As Byte() = New Byte(streamLength) {}
stream.Read(fileData, 0, streamLength)
stream.Position = 0
System.IO.File.WriteAllText("array_bytes_vb.txt", Convert.ToBase64String(fileData.ToArray()))
Return fileData
End Function
Это мой код в. NET
private byte[] ReadFully(Stream input)
{
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
System.IO.File.WriteAllText("array_bytes_net.txt",Convert.ToBase64String(ms.ToArray()));
return ms.ToArray();
}
}
Если я сравниваю оба файла, только в конце массива байтов есть разные:
Различная строка сравнения обоих файлов char по char
В чем может быть ошибка?
Заранее большое спасибо.