在C#中處理gzip流的最佳方案是使用System.IO.Compression命名空間中的GZipStream類。這個類允許你壓縮和解壓縮數據流,使處理gzip流變得非常簡單。
以下是一個簡單的示例代碼,演示如何使用GZipStream類壓縮和解壓縮數據流:
using System;
using System.IO;
using System.IO.Compression;
public class GZipExample
{
public static void Compress(string inputFile, string compressedFile)
{
using (FileStream input = File.OpenRead(inputFile))
{
using (FileStream output = File.Create(compressedFile))
{
using (GZipStream gzip = new GZipStream(output, CompressionMode.Compress))
{
input.CopyTo(gzip);
}
}
}
}
public static void Decompress(string compressedFile, string outputFile)
{
using (FileStream input = File.OpenRead(compressedFile))
{
using (FileStream output = File.Create(outputFile))
{
using (GZipStream gzip = new GZipStream(input, CompressionMode.Decompress))
{
gzip.CopyTo(output);
}
}
}
}
public static void Main()
{
Compress("input.txt", "compressed.gz");
Decompress("compressed.gz", "output.txt");
}
}
在這個示例代碼中,Compress方法用于壓縮一個文件并將壓縮后的數據寫入到一個新的文件中,而Decompress方法用于解壓縮一個文件并將解壓后的數據寫入到另一個新文件中。
你可以根據需要調整這些方法,以滿足你的具體需求。希望這個示例能幫助你開始處理gzip流的工作。