不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
GZipStream压缩/解压字符串改进版(C#)
编辑:dnawo 日期:2009-12-25
复制内容到剪贴板 程序代码
//using System.IO;
//using System.IO.Compression;
/// <summary>
/// GZipStream压缩字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static Stream GZipCompress(string str)
{
MemoryStream msReturn;
using (MemoryStream msTemp = new MemoryStream())
{
using (GZipStream gz = new GZipStream(msTemp, CompressionMode.Compress, true))
{
using (BinaryWriter writer = new BinaryWriter(gz))
{
writer.Write(Encoding.UTF8.GetBytes(str));
}
gz.Close();
msReturn = new MemoryStream(msTemp.GetBuffer(), 0, (int)msTemp.Length);
}
}
return msReturn;
}
/// <summary>
/// GZipStream解压字符串
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
static string GZipDecompress(Stream stream)
{
using (GZipStream gz = new GZipStream(stream, CompressionMode.Decompress))
{
using (StreamReader reader = new StreamReader(gz, Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
}
//using System.IO.Compression;
/// <summary>
/// GZipStream压缩字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static Stream GZipCompress(string str)
{
MemoryStream msReturn;
using (MemoryStream msTemp = new MemoryStream())
{
using (GZipStream gz = new GZipStream(msTemp, CompressionMode.Compress, true))
{
using (BinaryWriter writer = new BinaryWriter(gz))
{
writer.Write(Encoding.UTF8.GetBytes(str));
}
gz.Close();
msReturn = new MemoryStream(msTemp.GetBuffer(), 0, (int)msTemp.Length);
}
}
return msReturn;
}
/// <summary>
/// GZipStream解压字符串
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
static string GZipDecompress(Stream stream)
{
using (GZipStream gz = new GZipStream(stream, CompressionMode.Decompress))
{
using (StreamReader reader = new StreamReader(gz, Encoding.UTF8))
{
return reader.ReadToEnd();
}
}
}
测试中发现问题:
·GZipCompress方法中使用StreamWriter则无法往gz写入内容;
·GZipCompress方法中msReturn先初始化再复制msTemp时,一定要将当前流位置设置为0,否则解压不出内容:
复制内容到剪贴板 程序代码
static Stream GZipCompress(string str)
{
MemoryStream msReturn = new MemoryStream();
using (MemoryStream msTemp = new MemoryStream())
{
using (GZipStream gz = new GZipStream(msTemp, CompressionMode.Compress, true))
{
using (BinaryWriter writer = new BinaryWriter(gz))
{
writer.Write(Encoding.UTF8.GetBytes(str));
}
gz.Close();
msReturn.Write(msTemp.GetBuffer(), 0, (int)msTemp.Length);
msReturn.Seek(0, SeekOrigin.Begin);//非常重要
}
}
return msReturn;
}
{
MemoryStream msReturn = new MemoryStream();
using (MemoryStream msTemp = new MemoryStream())
{
using (GZipStream gz = new GZipStream(msTemp, CompressionMode.Compress, true))
{
using (BinaryWriter writer = new BinaryWriter(gz))
{
writer.Write(Encoding.UTF8.GetBytes(str));
}
gz.Close();
msReturn.Write(msTemp.GetBuffer(), 0, (int)msTemp.Length);
msReturn.Seek(0, SeekOrigin.Begin);//非常重要
}
}
return msReturn;
}
评论: 0 | 引用: 0 | 查看次数: 6506
发表评论
请登录后再发表评论!