问题标签 [gzipstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3428 浏览

ftp - 使用 GZipStream 计算进度(条形图)

我正在从一些慢速源(如 FTP 服务器)读取 .gz 文件,并立即处理接收到的数据。看起来像这样:

我的问题是显示准确的进度条。事先我可以得到压缩的 .gz 文件大小,但我不知道解压缩的内容有多大。逐行读取文件我很清楚我读取了多少未压缩字节,但我不知道这与压缩文件大小有何关系。

那么,有什么方法可以从 GZipStream 中获取文件指针进入压缩文件的距离?我只需要当前位置,在读取文件之前我可以获取的 gz 文件大小。

0 投票
5 回答
47114 浏览

c++ - 如何在 C++ 中读取/写入 gzip 压缩文件?

如何在 C++ 中读取/写入 gzip 压缩文件?

这里iostream包装类看起来不错,下面是一个简单的使用示例:

但我无法真正链接它(虽然我有一个/usr/lib/libz.a)。一个简单的

没有这样做(undefined reference to gz::gzstreambase::~gzstreambase())。

0 投票
2 回答
306 浏览

.net - 使用 GzipStream 时如何确定缓冲区的大小?

我正在尝试解压缩 GZipStream。问题是流上的“Length”属性引发了“NotSupported”异常。当我从流中读取字节时,我如何知道缓冲区的大小?由于它是压缩的,我不知道未压缩的版本会有多大。有什么建议么?

0 投票
5 回答
10698 浏览

c# - 在 WebRequest 中发送压缩数据?

我有大量数据(~100k),我的 C# 应用程序正在发送到安装了 mod_gzip 的 Apache 服务器。我正在尝试首先使用 System.IO.Compression.GZipStream 压缩数据。PHP 接收原始的 gzip 压缩数据,因此 Apache 并没有像我预期的那样解压缩它。我错过了什么吗?

我不完全确定“内容编码:gzip”适用于客户端提供的标头。

0 投票
4 回答
3485 浏览

c# - GZipStream zip 文件无效或损坏

打开 zip 文件时出现问题。我正在使用此代码压缩文件:

当我调用此函数时,我收到“成功”消息,但我无法打开 zip 文件。这是我的函数调用代码:

这是我收到的错误消息:

压缩(文件夹)无效或损坏

0 投票
3 回答
11495 浏览

c# - 不支持写入压缩流。使用 System.IO.GZipStream

尝试使用 .NET 框架中包含的 GZipStream 类解压缩 (.gz) 文件时出现异常。我正在使用 MSDN 文档。这是一个例外:

不支持写入压缩流。

这是应用程序源:

在compressedZipStream.write() 处引发异常。

有任何想法吗?这个异常告诉我什么?

0 投票
2 回答
8461 浏览

c# - C# 到 Java:Base64String、MemoryStream、GZipStream

我有一个已在 .NET 中压缩的 Base64 字符串,我想将其转换回 Java 中的字符串。我正在寻找 C# 语法的一些 Java 等价物,特别是:

  • Convert.FromBase64String
  • 记忆流
  • GZipStream

这是我想转换的方法:

任何指针表示赞赏。

0 投票
4 回答
8061 浏览

c# - GZipStream 解压性能差

我有一个连接到后端 WAS 服务器的 .NET 2.0 WinForms 应用程序。我正在使用 GZipStream 解码从对服务器进行的 HttpWebRequest 调用返回的数据。返回的数据是 Apache 正在压缩的压缩 CSV。整个服务器堆栈是 Hibernate-->EJB-->Spring-->Apache。

对于小的响应,性能很好(<50ms)。当我收到 >150KB 的响应时,解压缩需要 60 多秒。大部分时间似乎都花在了 GZipStream 构造函数上。

这是显示我从 HttpWebResponse 调用中获取响应流的代码:

编辑 1

根据 Lucero 的评论,我将 Decompress 方法修改为以下内容,但在实例化 GZipStream 之前将 ResponseStream 加载到 MemoryStream 中没有任何性能优势。

根据上面的代码,任何人都可以看到任何问题吗?这对我来说似乎很基本,但它让我发疯。

编辑 2

我使用 ANTS Profiler 对应用程序进行了分析,在 60 年代解压期间,CPU 接近于零,内存使用量没有变化。

编辑 3

实际放缓似乎是在阅读

整个 60 年代都用于将响应流加载到 MemoryStream 中。一旦它在那里,对 GZipStream 的调用就会很快。
编辑 4

我发现使用 HttpWebRequest.AutomaticDecompression 会出现同样的性能问题,所以我要结束这个问题。

0 投票
2 回答
57183 浏览

c# - GZipStream 和解压

我有应该进行压缩的代码:

我认为确实如此,但我想解压缩上面压缩的内容。我有这样的想法:

在这里它没有......在进入循环之前我有 nRead = 0......我做错了什么?我使用的测试文件是最简单的 TEXT 文件(大小:104 字节)...

0 投票
4 回答
29212 浏览

.net - .NET GZipStream 压缩和解压

下面这段代码有什么问题。我总是得到 FALSE,这意味着压缩后,解压缩的数据与原始值不匹配。

如果您能指出我在哪里犯了错误,我将不胜感激。