Другой байтовый массив файлов в C# и VB.NET - PullRequest
0 голосов
/ 27 мая 2020

У меня проблема с байтовым массивом из файла.

Я получаю байтовый массив из файла в 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

В чем может быть ошибка?

Заранее большое спасибо.

...