110,534
社区成员
发帖
与我相关
我的任务
分享
Encoding gb2312 = Encoding.GetEncoding("gb2312");
FileStream fs = new FileStream("g:\\temp\\gb2312.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs, gb2312);
MemoryStream ms = new MemoryStream();
string line = null;
byte[] buf;
while ((line = sr.ReadLine()) != null)
{
buf = gb2312.GetBytes(line + "\r\n");
ms.Write(buf, 0, buf.Length);
}
ms.Close();
sr.Close();
fs.Close();
int bytes;
Deflater deflater = new Deflater();
deflater.SetInput(ms.ToArray());
buf = new byte[1024];
ms = new MemoryStream();
while (!deflater.IsNeedingInput)
{
bytes = deflater.Deflate(buf);
if (bytes <= 0)
break;
ms.Write(buf, 0, bytes);
}
deflater.Finish();
while (!deflater.IsFinished)
{
bytes = deflater.Deflate(buf);
if (bytes <= 0)
break;
ms.Write(buf, 0, bytes);
}
ms.Close();
Inflater inflater = new Inflater();
inflater.SetInput(ms.ToArray());
ms = new MemoryStream();
while (!inflater.IsFinished)
{
bytes = inflater.Inflate(buf);
if (bytes <= 0)
break;
ms.Write(buf, 0, bytes);
}
ms.Close();
buf = ms.ToArray();
fs = new FileStream("g:\\temp\\gb2312.txt.bak", FileMode.Create);
fs.Write(buf, 0, buf.Length);
fs.Close();