예제 #1
0
        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());
        }