问题标签 [deflatestream]
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.
c# - MSDN C# DeflateStream 示例代码问题
任何想法为什么在下面的示例中,我们需要添加 100 (buffer.Length + 100)?buffer.Length 应该和解压后的缓冲区长度一样,所以不需要再增加100。:-)
http://msdn.microsoft.com/en-us/library/bc2dbwea.aspx
提前谢谢,乔治
.net - 使用 DeflateStream 时可以使用更少的内存吗?
我的应用程序需要解压缩包含大量 Deflate 压缩块(以及其他类型的压缩和加密)的文件。内存分析显示,deflate 流构造函数负责在其生命周期内分配应用程序的大部分内存(54.19%,其次是 DeflateStream.read,占 12.96%,其他所有内存都低于 2%)。
换个角度来看,每个文件块通常是 4KiB(解压后),而 DeflateStream 的构造函数分配的空间略大于 32KiB(大概是用于滑动窗口)。垃圾收集器有一个现场日,因为所有这些放气流几乎不会持续任何时间(每个都在下一个到来之前消失)!再见缓存效率。
我可以继续使用 DeflateStream,但我想知道是否有更好的选择。也许是一种重置流并再次使用它的方法?
c# - 令人费解的 .Net C# DeflateStream 问题
我想知道是否有人可以阐明一个让我发疯的问题:
我正在写一个压缩解压测试类。为了测试它,我将数据集序列化为内存流,对其进行压缩、解压缩并比较结果。
压缩很好,但解压缩是它碰到污垢的地方。这是解压功能:
使用大小为 65536 的缓冲区,解压缩的流总是返回比未压缩的少一个字节。
现在,这将我带到了我正在与之抗争的第二个问题。对于某些缓冲区大小,uncompressStream.Read 即使仍有压缩数据要提取,也会返回 0。
对于这些情况,deflateStream.Read(s) 在 do{} 循环中只返回一次,然后返回一个等于 buffersize 的未压缩流,如果将 buffersize 增加一个字节,一切都很好(除了丢失的字节)。
缓冲区大小为 65536 的输出:(原始未压缩数据为 207833)
189544的缓冲区大小(代码坦克的一些神奇数字)
还要注意缓冲区大小 65536 的第三次读取,例如: bytesRead: [58472] 显然这也应该是 65536,因为缓冲区上还有数据吗?
任何想法将不胜感激。
蒂亚
- 雅科
c# - 使用 Deflate 压缩和解压缩字符串
我需要压缩和解压缩字符串
这是代码:
和
UnZipStr 方法似乎有错误。有人可以帮助我吗?
.net - 使用 deflatestream 在 .NET (Vb) 中使用压缩数据执行 HTTP Post
我从 VB.Net 客户端发布的数据很大,我想压缩。我想做一个“POST”并且 apache 服务器支持 mod_deflate。我正在尝试将 DeflateStream 集成到我的邮政编码中,但似乎不起作用。
我可以使用标准代码在不压缩的情况下发送数据。
但是我不确定如何使用 Deflate Stream 添加压缩。我最好的猜测是以下,但我认为它不起作用。
问题。
- 我是否应该发送压缩流的 ContentLength,如果是,我该如何获得。
- 我应该写入数据流还是压缩?
- 这就是你如何一起使用 DataStream 和 DeflateSram 的吗?
- 在服务器端,考虑到 apache 应该自动处理膨胀,我怎么知道它正在工作(到目前为止,我知道在上面使用的两种方法之间我的帖子没有节省时间)。
mono - 单声道和放气流
我有一个简单的代码
从 ds2 读取时,我有以下内容:
堆栈跟踪:
在(包装器托管到本机)System.IO.Compression.DeflateStream.ReadZStream(intptr,intptr,int)<0x00004>
在(包装器托管到本机)System.IO.Compression.DeflateStream.ReadZStream(intptr,intptr,int)<0x00004>
在 C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System 中的 System.IO.Compression.DeflateStream.ReadInternal (byte[],int,int) [0x00031]。 IO.Compression\DeflateStream.cs:192
在 C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System 中的 System.IO.Compression.DeflateStream.Read (byte[],int,int) [0x00086]。 IO.Compression\DeflateStream.cs:214
在 C:\Users\ilukyanov\Desktop\Cassini\GZipDemo\Main.cs:27 中的 testtesttest.MainClass.Main (string[]) [0x00041]
在(包装器运行时调用).runtime_invoke_void_object(对象,intptr,intptr,intptr)
此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。
这个问题出现在 Mono 2.6.1 & 2.6.3...
有没有已知的方法可以在 Mono 中成功读取 DeflateStream?或者也许有一些具有相同功能的第三方开源程序集?
asp.net-mvc-2 - 如何同时压缩和缩小内容?
我知道我们可以通过将 Response.Filter 声明为 GZip 或 Delfalte 流来压缩响应,但是我如何同时执行压缩和缩小呢?声明继承 Stream 的新类,然后首先对内容执行缩小,然后根据支持的 User-Agent 通过 GZip 或 Deflate 压缩它?
.net - .NET Deflate 流错误/错误
有没有人在使用 .NET Deflate Stream 时遇到以下错误?
解压缩从磁盘读取的 deflate 流时会发生此错误。我正在使用简单的索引文件,其中包含许多小的 deflate 编码块。这是一个非常罕见的错误,因为几十万(或百万)中只有一个压缩项目会遇到此错误。
似乎 HuffmanTree.CreateTable 方法异常和例程试图填充超出其限制的数组。
我尝试分配一个两倍于原始大小的数组进行解压,但它仍然会引发错误。
解码后的数据似乎完好无损,但是,例程不断尝试解码并溢出缓冲区。
我想我可以尝试/捕获并检测是否发生此错误,然后尝试处理它。
对问题的任何见解将不胜感激。
(I have tried DotNetZip which is causing different issues in the 64 bit environment I am working in.)
c# - GZipStream 和 DeflateStream 产生更大的文件
我正在尝试在 C# 中使用 deflate/gzip 流,但压缩后的文件似乎比以前大。
例如,我压缩了一个 900ko 的 docx 文件,但它产生了一个 1.4Mo 的文件!
它对我尝试的每个文件都执行此操作。
可能是我这样做的方式错了吗?这是我的代码:
c# - DeflateStream 不解压数据(第一次)
所以这里有一个奇怪的。我有这种方法来获取 Base64 编码的压缩字符串并返回原始数据:
这将返回一个空字符串,除非我添加第二次调用ds.CopyTo(inflate)
. (WTF?)
( Flush
// on没有效果。Close
)Dispose
ds
为什么DeflateStream
在第一次调用时复制 0 个字节?我也试过用 循环Read()
,但它在第一次调用时也返回零,然后在第二次调用。
更新:这是我用来压缩数据的方法。