你好
在.net 4的这段代码中我使用了gzipstream的copyto方法
System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArray);
GZipStream DecompressOut = new GZipStream(ms, System.IO.Compression.CompressionMode.Decompress);
MemoryStream outmem = new MemoryStream();
DecompressOut.copyto(outmem);
FileStream outFile = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(outFile);
如何直接将GZip Stream写入MemoryStream和FileStream?
流之间的复制非常基本:
public static long CopyTo(this Stream source, Stream destination) {
byte[] buffer = new byte[2048];
int bytesRead;
long totalBytes = 0;
while((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0) {
destination.Write(buffer, 0, bytesRead);
totalBytes += bytesRead;
}
return totalBytes;
}
因此,只需将其插入,您就应该进行排序:
using(var ms = new MemoryStream(byteArray))
using(var gzip = new GZipStream(ms, CompressionMode.Decompress))
using (var file = new FileStream(fileName, FileMode.OpenOrCreate,
FileAccess.Write)) {
gzip.CopyTo(file);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)