private StreamReader createReaderFromWriter(StreamWriter wtr, int idx) { if (dbgLogger != null) { dbgLogger.Log("createReaderFromWriter ({0}, {1})", idx, fileNames[idx]); } wtr.Flush(); Stream x = wtr.BaseStream; var zipStream = x as GZipStream; if (zipStream == null) { if (wtr.BaseStream == null) { return(null); } wtr.BaseStream.Position = 0; return(wtr.BaseStream.CreateTextReader()); } //We had a zip-stream. Close the writing stream, and create a zip reader x = zipStream.BaseStream; if (x == null) { return(null); } zipStream.Close(); x.Position = 0; zipStream = new GZipStream(x, CompressionMode.Decompress, false); return(zipStream.CreateTextReader()); }