求分别压缩,合并解压的压缩算法,有示例,要是能用java就最好了

kavoe 2017-03-13 03:02:34
目前遇到的项目有一个效率问题,原始数据比较大,需要进行压缩存储。查询时需要查询多条数据,先取出内容,然后再逐条解压,时间比较长。

我希望能找到一种方式,可以逐条进行压缩,然后把压缩的数据拼接一起解压,解压出来是多条数据。不是分卷压缩,我搜了半天大多数都是分卷压缩,对我根本没有帮助。
...全文
300 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanta 2017-04-25
  • 打赏
  • 举报
回复
较大的文件,你需要文件对内部数据进行索引,类似Fat表,对每条记录在文件头建立指针,这样可以方便的去除你需要的数据,你这个还是比较简单的,因为不存在擦写,顺序写入指针即可。
kavoe 2017-03-15
  • 打赏
  • 举报
回复
感谢你的回答,不过看来我的描述不够清晰 我的应用实际是这样的,每来一条数据我就压缩,然后存储到文件中,下一条数据来了之后,也是压缩保存,但并不是一个新文件,而是想直接保存到同一个文件里,不是在压缩包中添加,是追加到文件后面顺序存放,如果是添加到压缩包里整个文件都会被修改,文件很大的时候就速度是不可接受的。 解压时希望一次读出多条这样拼接的压缩输入,然后一次性解压,而不是循环单条解压,java的解压每次都要new stream,感觉上很耗时间。
tianfang 2017-03-15
  • 打赏
  • 举报
回复
新压缩的数据,在存储文件最后开始写入。注意文件锁 存储信息也可以用文本文件存储,和存储文件一起保存。风险比存数据库大。
tianfang 2017-03-15
  • 打赏
  • 举报
回复
加一个数据库表,记录数据ID,存储文件名(也可以再加一个表,这里用ID),压缩信息在存储文件的起始位置和长度
tianfang 2017-03-14
  • 打赏
  • 举报
回复
java 的标准压缩算法就是zip 你可以按多文件方式压缩: 1 每条数据生产一个文件,压缩; 2 多个压缩文件,压缩成一个文件 取出的时候,从压缩文件中按文件名取出多个文件即可 参考 http://zhangzhaoaaa.iteye.com/blog/2115048

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧