I have a method
private static String DecompressAndDecode(byte[] data)
{
GZipStream decompressor = new GZipStream(new MemoryStream(data), CompressionMode.
"There must be something obvious I'm missing here." - maybe, and so am I ;-)
Let's start with a little self-contained example and see where it differs from your actual code.
class SOTest
{
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;
}
private static byte[] foo(string data)
{
MemoryStream dest = new MemoryStream();
using (GZipStream compressor = new GZipStream(dest, CompressionMode.Compress))
{
using (StreamWriter sw = new StreamWriter(compressor))
{
sw.Write(data);
}
}
return dest.GetBuffer();
}
static void Main()
{
System.Console.WriteLine(
DecompressAndDecode(foo("Mary had a little lamb."))
);
return;
}
}
prints Mary had a little lamb.