我已经阅读了一段时间关于GZipStream
及其Write
方法。我正在尝试做的是将流中的压缩数据转换为字节数组。我将在下面留给我我的代码,因为我相信它将大大帮助您。
public static void Compress(byte[] fi)
{
using (MemoryStream inFile = new MemoryStream(fi))
using (FileStream outFile = File.Create(@"C:\Compressed.exe"))
using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
{
inFile.CopyTo(Compress);
}
}
我不想将压缩的数据写到字节数组上,然后返回字节数组(假设我使它成为函数),而不是写入磁盘上的文件。
最佳答案
您可以简单地使用另一个MemoryStream
及其 ToArray
method。
public static byte[] Compress(byte[] fi)
{
using (MemoryStream outFile = new MemoryStream())
{
using (MemoryStream inFile = new MemoryStream(fi))
using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
{
inFile.CopyTo(Compress);
}
return outFile.ToArray();
}
}
关于c# - GZipStream.Write方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6077337/