Sie haben ein Dekomprimieren GZipStream
, so müssen Sie Daten von ihm lesen. Der einfachste Weg ist, die GZipStream
mit einer StreamReader
zu umhüllen, die eine ReadToEnd
Methode hat, die eine Zeichenkette zurückgibt.
Etwas wie:
string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
res = sr.ReadToEnd();
}
(using
Aussagen sicherzustellen, dass inFile
geschlossen ist und alle anderen Ressourcen freigegeben werden.)
NB dies nicht davon ausgehen, dass inFile
enthält Text codierte UTF-8 oder UTF -16. Binärer Inhalt oder andere Textcodierung könnte Probleme verursachen (Sie können die Codierung mit einem anderen StreamReader
-Konstruktor überschreiben).
möglich Duplikat von [Wie erhalten Sie eine Zeichenfolge aus einem MemoryStream?] (Http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from-a-memorystream) –
Wenn ich folgendes benutze: var sr = new StreamReader (ms); var myStr = sr.ReadToEnd(); der String kommt leer zurück. Könnte mir etwas beim Konvertieren eines GZipStream in einen MemoryStream fehlen? – Brett
Wenn Ihr inFile immer eine Textdatei ist, funktioniert die von @Steven vorgeschlagene Lösung/Verbindung. Wenn die Formate unterschiedlich sind, können Sie nur eine Bade64-Darstellung der Daten haben. –