Brett
Brett

Reputation: 12007

C# GZipStream to String

I am in need of a way to write a GZipStream to a string.

I am using:

GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)

I have tried several methods, but can't figure it out. Does anyone have any ideas?

Many thanks, Brett

Upvotes: 9

Views: 16891

Answers (1)

Richard
Richard

Reputation: 109140

You have a decompressing GZipStream, so you need to read data from it. The easiest way is to wrap the GZipStream with a StreamReader which has a ReadToEnd method returning a string.

Something like:

string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
  res = sr.ReadToEnd();
}

(using statements ensure that inFile is closed and any other resources are freed.)

NB this does assume that inFile contains text encoded UTF-8 or UTF-16. Binary content or other text encoding could cause problems (you can override the encoding with a different StreamReader constructor).

Upvotes: 26

Related Questions