У меня есть методStreamReader.ReadToEnd() возвращает пустую строку
private static String DecompressAndDecode(byte[] data)
{
GZipStream decompressor = new GZipStream(new MemoryStream(data), CompressionMode.Decompress);
StreamReader decompressed = new StreamReader(decompressor, Encoding.UTF8);
String result = decompressed.ReadToEnd();
return result;
}
У меня есть некоторый текст с gzip'нутым в качестве входных данных и результат должен быть строковым представлением этого текста. Проблема в том, что метод возвращает пустую строку. Меня озадачивает то, что когда я перехожу через метод в режиме отладки и доставляю оператор return, переменная результата - пустая строка, но если я создам часы для выражения decpressed.ReadToEnd(), он вернет мне текст. То, что я ожидаю в этой точке, - это переменная результата, содержащая текст и выражение decpressed.ReadToEnd(), оценивающее пустую строку. (Переоценка выражения распакованного.ReadToEnd() возвращает пустую строку, как ожидалось).
@Edit: Я обнаружил, что в моем случае ReadToEnd() возвращает текст на второй вызов возвращающегося пустые строки по первому зову и после второго звонка.
Должно быть что-то очевидное, я здесь отсутствует.
Действительно ли кодировка UTF8? –
Да, это UTF8. – axk