我需要一種方法來寫一個字符串的GZipStream。C#GZipStream字符串
我使用:
GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)
我嘗試了好幾種方法,但不能弄明白。 有沒有人有任何想法?
非常感謝, 佈雷特
我需要一種方法來寫一個字符串的GZipStream。C#GZipStream字符串
我使用:
GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)
我嘗試了好幾種方法,但不能弄明白。 有沒有人有任何想法?
非常感謝, 佈雷特
你有一個解壓GZipStream
,所以你需要從中讀取數據。最簡單的方法是將GZipStream
換成StreamReader
,其中ReadToEnd
方法返回一個字符串。
喜歡的東西:
string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
res = sr.ReadToEnd();
}
(using
報表確保被關閉,任何其他資源被釋放。)
NB這並假設包含文本UTF-8編碼或UTF -16。二進制內容或其他文本編碼可能會導致問題(您可以使用不同的StreamReader
構造函數覆蓋編碼)。
工作完美!感謝大家! – Brett 2010-08-12 15:21:43
可能重複的[你如何從一個MemoryStream獲取字符串?](http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from-a-memorystream) – 2010-08-12 15:11:20
當我使用: var sr = new StreamReader(ms); var myStr = sr.ReadToEnd(); 字符串回來空。我可能會錯過將GZipStream轉換爲MemoryStream? – Brett 2010-08-12 15:13:54
如果您的inFile始終是一個文本文件,那麼@Steven建議的解決方案/鏈接將起作用。它的格式是不同的,那麼你只能有一個bade64的數據表示。 – 2010-08-12 15:17:38