C#自带DeflateStream,生成后的文件和javat生成的不一样,搜索了一下,找到国外一篇文章:

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/65537603-d7db-4e66-b5e6-d08275a4e4c8/

也是同样的问题,其中的一个回复是:

The problem is that DeflateStream in c# does not use the same compression algorithm than Deflater in java(and probably objective C).

Instead, try to use the zlib.net library: http://www.componentace.com/zlib_.NET.htm

=====================================

下载引用zlib.net,调用CompressFile()方法,问题解决。

 public static void CopyStream(System.IO.Stream input, System.IO.Stream output){byte[] buffer = new byte[2000];int len;while ((len = input.Read(buffer, 0, 2000)) > 0){output.Write(buffer, 0, len);}output.Flush();}private void compressFile(string inFile, string outFile){System.IO.FileStream outFileStream = new System.IO.FileStream(outFile, System.IO.FileMode.Create);zlib.ZOutputStream outZStream = new zlib.ZOutputStream(outFileStream, zlib.zlibConst.Z_DEFAULT_COMPRESSION);System.IO.FileStream inFileStream = new System.IO.FileStream(inFile, System.IO.FileMode.Open);try{CopyStream(inFileStream, outZStream);}finally{outZStream.Close();outFileStream.Close();inFileStream.Close();}}private void decompressFile(string inFile, string outFile){System.IO.FileStream outFileStream = new System.IO.FileStream(outFile, System.IO.FileMode.Create);zlib.ZOutputStream outZStream = new zlib.ZOutputStream(outFileStream);System.IO.FileStream inFileStream = new System.IO.FileStream(inFile, System.IO.FileMode.Open);try{CopyStream(inFileStream, outZStream);}finally{outZStream.Close();outFileStream.Close();inFileStream.Close();}}

转载于:https://www.cnblogs.com/gdjlc/archive/2012/11/07/2758694.html

c#利用zlib.net对文件进行deflate流压缩(和java程序压缩生成一样)相关推荐

  1. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop

    利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

  2. linux启动java jar文件_推荐:Linux启动Java程序jar包Shell脚本

    #!/bin/sh# 该脚本为Linux下启动java程序的脚本## author: luandy# date: 2021/1/15## 特别注意:# 该脚本使用系统kill命令来强制终止指定的jav ...

  3. java 解除文件占用_Java如何强制删除java程序占用的文件

    在JAVA对文件的读写操作中,操作完以后将输入流和输出流及时关闭时很必要的.假如我们有时候忘记关闭了,又不知道在哪个地方去关闭,为了删除该文件,JAVA可以进行强制删除操作.可以使用如下代码进行强制删 ...

  4. JDK命令之java -- 用来执行字节码文件,即用来执行Java程序

    文章目录 一.命令介绍 二.用法格式 三.常用选项 四.常用选项详解 -client,-server -hotspot -classpath,-cp -classpath -D=value -verb ...

  5. java class 文件分析_大概优秀的java程序员都要会分析class文件吧

    相信大家在学java的时候都会听到这样的一些结论: enum 是一个类 泛型的实现使用了类型擦除技术 非静态内部类持有外部类的引用 需要将自由变量声明成final才能给匿名内部类访问 ... 初学的时 ...

  6. Java程序如何生成Jar、exe及安装文件

    http://blog.csdn.net/luoweifu/article/details/7628006/ 一.用Eclipse生产Jar文件 首先,看一下我的项目的目录结构: 1,项目名字上面点右 ...

  7. IntelliJ IDEA如何直接打开运行Java文件(idea如何直接运行Java程序)

    1.我们演示如何使用IDEA打开一个记事本编写的Java文件(其他Java文件操作相同),如下图: 打开之后如下图,无法运行程序. 2.需要设置一下目录结构,按下图操作: 注意:选择输出路径时不要和J ...

  8. 解决Java程序在MOTO E680i中声音文件播放

    这几天一直在用MOTO SDK来开发一款用于Moto E680i的JAVA游戏,利用BLOG发表一些心得: MOTO系列手机中JAVA程序播放一个声音文件比较简单,但是用于交互式音效时就有问题了. 根 ...

  9. 完美解决Java程序在 MOTO E680i 中声音文件播放

    这几天一直在用MOTO SDK来开发一款用于Moto E680i的JAVA游戏,利用BLOG发表一些心得: MOTO系列手机中JAVA程序播放一个声音文件比较简单,但是用于交互式音效时就有问题了. 根 ...

最新文章

  1. 广泛的信号处理链如何让语音助理“正常工作”
  2. 一个5节点的polardb mysql_POLARDB问题
  3. ajax解析json中的对象数组对象,在JQuery中检索json数组后获取json对象Ajax
  4. 使用 Skeleton Screen 提升用户感知体验
  5. 通用usb驱动libusb介绍和使用示例
  6. request.getRequestURL()和request.getRequestURI()区别
  7. 检查 ubuntu 版本_如何检查Ubuntu版本–快速简便的方法
  8. Typescript tsconfig
  9. win10 休眠设置无效_睡眠模式在Windows 10系统上不起作用?
  10. Reactive Extensions 初识
  11. Python argparse模块、argparse.ArgumentParser()用法解析
  12. unicode字符串解析
  13. sublime开发apicloud项更新apploader解决
  14. vivado 2018 下载地址
  15. Cortex-M3 (NXP LPC1788)之WDT窗口看门狗定时器
  16. 认识5G(一):5G 单天线阵面Type I码本(Type I Single Panel codebook)生成过程
  17. 测试从业人员的职业规划
  18. 电子设计(8)NPN和PNP三极管驱动LED电路
  19. 语音情感识别常见的声学特征
  20. 四年级下册计算机有错必改教案,小学四年级下册语文《步行18里》必

热门文章

  1. 用c语言赋值表示的例子,一起talk C栗子吧(第五回:C语言实例--数组巧妙赋值)...
  2. mysql表死锁查询
  3. display: flex的兼容性写法
  4. 网站建设对于哪些刚起步的企业是有必要的
  5. FineUI小技巧(3)表格导出与文件下载
  6. C++模板之一:函数模板.odt
  7. windows2003在打‘SP2’补丁时提示“拒绝访问”
  8. .net项目引用ActiveX控件注意点
  9. Bochs 调试命令
  10. 32位dll转64位工具_如何在64位系统中运行32位或16位程序