【项目分析】利用J#类库解决项目中数据压缩以及解压的问题
2011-02-28 16:59
573 查看
在上一篇文章(利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码),我已经提到,目前的项目需要进行平台移植,即JAVA平台服务迁移到DotNet平台服务中,服务是用来和公司的一款终端设备产品进行数据传输与交换。
解压代码
public static string _DecompressString(sbyte[] sBytes)
{
Inflater f = new Inflater();
f.setInput(sBytes);
ByteArrayOutputStream o = new ByteArrayOutputStream(sBytes.Length);
try
{
sbyte[] buf = new sbyte[1024];
while (!f.finished())
{
int got = f.inflate(buf);
o.write(buf, 0, got);
}
}
finally
{
o.close();
}
byte[] decompessBytes = SByteToByte(o.toByteArray());
return Encoding.Default.GetString(decompessBytes);
}
调用方法:
string baseStr1 = "eJwzMAADI3MgYWhgZGAIJIxMDY0NLQ0sjPQMEMDQVEFB4eyPrY+NjBTIAsGGRpYGBmZG5oZAky1I13/xwvZF1y5cOEKe7cQBAPx4Lgo=";
string str1 = ZipUtil.Decompress(baseStr1, ZipType.JSharp);
Console.WriteLine(str1);
string str2 = ZipUtil.Compress(str1, ZipType.JSharp);
Console.WriteLine(str2);
运行结果:
从运行结果上看,最后得到的BASE64字符串与原来的BASE64字符串保持一致了。
这样我就利用J#类库解决了项目中数据压缩以及解压的问题。有人可能要问我为什么要使用这样的一个解码规则呢?因为终端设备的程序已经固化在终端设备中了,它产生的HTTP数据头以及数据体,具有一定的规则,所以作为平台服务端,必须遵循这个规则来执行。
本篇文章作为一个分析项目中一些问题的思路,希望能够给大家带来些帮助吧!
附上本篇文章的源代码:JavaZipDemo.rar
解压代码
public static string _DecompressString(sbyte[] sBytes)
{
Inflater f = new Inflater();
f.setInput(sBytes);
ByteArrayOutputStream o = new ByteArrayOutputStream(sBytes.Length);
try
{
sbyte[] buf = new sbyte[1024];
while (!f.finished())
{
int got = f.inflate(buf);
o.write(buf, 0, got);
}
}
finally
{
o.close();
}
byte[] decompessBytes = SByteToByte(o.toByteArray());
return Encoding.Default.GetString(decompessBytes);
}
调用方法:
string baseStr1 = "eJwzMAADI3MgYWhgZGAIJIxMDY0NLQ0sjPQMEMDQVEFB4eyPrY+NjBTIAsGGRpYGBmZG5oZAky1I13/xwvZF1y5cOEKe7cQBAPx4Lgo=";
string str1 = ZipUtil.Decompress(baseStr1, ZipType.JSharp);
Console.WriteLine(str1);
string str2 = ZipUtil.Compress(str1, ZipType.JSharp);
Console.WriteLine(str2);
运行结果:
从运行结果上看,最后得到的BASE64字符串与原来的BASE64字符串保持一致了。
这样我就利用J#类库解决了项目中数据压缩以及解压的问题。有人可能要问我为什么要使用这样的一个解码规则呢?因为终端设备的程序已经固化在终端设备中了,它产生的HTTP数据头以及数据体,具有一定的规则,所以作为平台服务端,必须遵循这个规则来执行。
本篇文章作为一个分析项目中一些问题的思路,希望能够给大家带来些帮助吧!
附上本篇文章的源代码:JavaZipDemo.rar
相关文章推荐
- GridView异步加载中一次加载完所有数据问题的解决以及其原因分析
- Unity 中关于中文乱码以及压缩解压遇到的问题解决方法
- 压缩、解压 解决 客户端查询大批量数据时等待时间过长的问题
- 试着用React写项目-利用react-router解决跳转路由等问题(三)
- Mysql分页数据显示总数恒为1问题的分析与解决
- 【第九周】项目三-利用二叉树遍历解决问题(1)
- 第十周项目3-利用二叉树遍历思想解决问题
- 2016年09月12日 - 做项目过程中遇到问题以及解决
- 第九周项目3 - 利用二叉树遍历思想解决问题
- 解决使用maven打包项目时,依赖jar先解压成class在打包的问题
- mysql 并发下数据不一致的问题分析及解决
- 第二周《C语言及程序设计》实践项目26 利用switch语句解决问题
- 第十周 项目3-利用二叉树遍历思想解决问题(2)
- Eclipse 项目转 android studio 编译apk太大原因分析,以及解决方法
- 第十周项目3--利用二叉树遍历思想解决问题(4)
- 跟用户沟通,问题尽量分析清楚,以及解决问题
- 第十周 项目4-利用二叉树遍历思想解决问题(4)
- 清除arcsde空间垃圾数据以及解决sde图层名称被占用的问题
- 第十周项目3--利用二叉树遍历思想解决问题
- Maven构建部署项目遇到的各种问题以及解决办法