![]() |
1
2
如果您使用Java,我刚刚发布了一个库: http://code.google.com/p/jzran . |
![]() |
2
1
Byte Pair Encoding 允许随机访问数据。 使用它不会获得很好的压缩效果,但是为了获得一棵树,你牺牲了自适应(可变)哈希树,所以你可以访问它。 然而,您仍然需要某种索引才能找到特定的“字节”。既然您可以接受1MB的延迟,那么您将为每1MB创建一个索引。希望您能找到一种方法,使索引足够小,仍然可以从压缩中受益。 这种方法的好处之一就是随机访问编辑。可以在相对较小的数据块中更新、删除和插入数据。 如果很少访问,可以使用gzip压缩索引,并在需要时对其进行解码。 |
![]() |
3
1
如果你想最小化所涉及的工作,我只需要将数据分成1MB(或其他)块,然后将这些块放入PKZIP存档。然后需要一小段前端代码来获取文件偏移量,然后除以1M以获得要解压缩的正确文件(显然,使用剩余部分来获得该文件中的正确偏移量)。
编辑:是的,现有的代码可以处理这个问题。InfoZip解压的最新版本(最新版本为6.0)包括
或者,您可以在后台运行一个zip/unzip副本来完成这项工作。这并没有那么简洁,但毫无疑问,实现起来要简单一些(如果你愿意的话,还可以让你很容易地切换格式)。 |
![]() |
4
1
看看我的项目- csio 我想这正是你想要的:像stdio一样的接口和多线程压缩程序。
它是用C语言编写的库,提供CFILE结构和函数
典型用法:
它是麻省理工学院许可的,所以你可以在你的项目中不受限制地使用它。有关更多信息,请访问github上的项目页面: https://github.com/hoxnox/csio |
![]() |
5
0
压缩算法通常是分块工作的,我想你可以根据块的大小来设计一些东西。 |
![]() |
6
0
我建议使用 Boost Iostreams Library 促进Iostreams可用于创建访问TCP连接的流,或作为加密和数据压缩的框架。该库包括用于访问内存映射文件、使用操作系统文件描述符访问文件、代码转换、正则表达式文本过滤、行尾转换以及zlib、gzip和bzip2格式的压缩和解压缩的组件。
升压库已被C++标准委员会接受为Tr2的一部分,因此它最终将被编译成大多数编译器(
Boost Getting Started Guide
注意:只有部分
|
![]() |
7
0
如果需要深度索引,可以使用BTree算法,其中“页面”是文件。 在web上有几个这样的实现,因为它们的代码并不复杂。 |
![]() |
8
0
您可以使用bzip2,并基于James Taylor的API轻松创建自己的API seek-bzip2 |
![]() |
Alex Multifabrika · 设置IIS10以提供预压缩文件 7 年前 |
![]() |
Brendan Gooden · 无法将值附加到字符串C# 7 年前 |
![]() |
noobcoder · 如何为PIGZ(并行gzip)准备放气流? 7 年前 |
|
olmedocr · 在firebase上使用gzip压缩 7 年前 |
![]() |
Rudraksh Pathak · Gzip压缩不适用于XHR请求 7 年前 |
![]() |
RightmireM · 逐行写入gzip文件 7 年前 |