我已经阅读了一段时间有关 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/