GraphView читает данные из массива, вызывая зависание приложения

Вы не должны использовать StreamReader для двоичных файлов (например, gif или jpg). StreamReader для данных text . Вы почти , конечно, теряете данные, если используете их для произвольных двоичных данных. (Если вы используете Encoding.GetEncoding (28591), вы, вероятно, будете в порядке, но в чем смысл?)

Зачем вам вообще нужно использовать StreamReader? Почему бы просто не сохранить двоичные данные в качестве двоичных данных и записать их на диск (или SQL) в виде двоичных данных?

EDIT: поскольку это, кажется, то, что люди хотят видеть ... если вы do просто хотите скопировать один поток в другой (например, в файл), используйте что-то вроде этого:

/// 
/// Copies the contents of input to output. Doesn't close either stream.
/// 
public static void CopyStream(Stream input, Stream output)
{
    byte[] buffer = new byte[8 * 1024];
    int len;
    while ( (len = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write(buffer, 0, len);
    }    
}

Чтобы использовать его для сброса потока в файл, например:

using (Stream file = File.Create(filename))
{
    CopyStream(input, file);
}

Обратите внимание, что Stream.CopyTo был введен в .NET 4, служащий в основном той же цели.

0
задан Lisa Wang 3 March 2019 в 22:11
поделиться