문자열에 GZipStream을 쓰는 방법이 필요합니다.C# GZipStream to String
내가 사용하고 :
GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)
나는 여러 가지 방법을 시도하지만, 그것을 알아낼 수 없습니다. 누구에게 아이디어가 있습니까?
많은 감사, 브렛
문자열에 GZipStream을 쓰는 방법이 필요합니다.C# GZipStream to String
내가 사용하고 :
GZipStream Decompress = new GZipStream(inFile, CompressionMode.Decompress)
나는 여러 가지 방법을 시도하지만, 그것을 알아낼 수 없습니다. 누구에게 아이디어가 있습니까?
많은 감사, 브렛
당신은 압축 해제 GZipStream
을 가지고, 그래서 당신은 그것에서 데이터를 읽을 필요가있다. 가장 쉬운 방법은 문자열을 반환하는 ReadToEnd
메서드가있는 StreamReader
으로 GZipStream
을 래핑하는 것입니다.
뭔가 같은 :
string res;
using (var decompress = new GZipStream(inFile, CompressionMode.Decompress))
using (var sr = new StreamReader(decompress)) {
res = sr.ReadToEnd();
}
(using
문 inFile
가 폐쇄되고 다른 자원이 해제되어 있는지 확인합니다.)
NB이이 inFile
텍스트 UTF-8 또는 UTF 인코딩 포함되어 있다고 가정 않습니다 -16. 바이너리 콘텐츠 또는 다른 텍스트 인코딩으로 인해 문제가 발생할 수 있습니다 (다른 StreamReader
생성자로 인코딩을 재정의 할 수 있음).
완벽하게 일했습니다! 모두에게 감사드립니다! – Brett
가능한 복제본 [어떻게하면 MemoryStream에서 문자열을 가져 옵니까?] (http://stackoverflow.com/questions/78181/how-do-you-get-a-string-from-a-ememorystream) –
내가 사용할 때 : var sr = new StreamReader (ms); var myStr = sr.ReadToEnd(); 문자열이 다시 비어 있습니다. GZipStream을 MemoryStream으로 변환 할 때 뭔가 빠져있을 수 있습니까? – Brett
inFile이 항상 텍스트 파일이면 @Steven이 제안한 솔루션/링크가 작동합니다. 형식이 다르면 데이터의 bade64 표현 만있을 수 있습니다. –