【问题标题】:Is it possible to search a file with comrpessed objects in java?是否可以在java中搜索带有压缩对象的文件?
【发布时间】:2011-08-25 00:16:05
【问题描述】:

我从 ORACLE 读到以下bit:

我可以对我的对象的压缩版本执行方法吗,例如 isempty(zip(serial(x)))?

由于对象的编码,这对于任意对象实际上是不可行的。对于特定对象(如字符串),您可以比较生成的比特流。编码是稳定的,因为每次对同一个对象进行编码时,它都会被编码为相同的比特集。

所以我有了这个想法,假设我有一个 4M 长的 char 数组,我是否可以使用 GZIPOutputStream 将其压缩到数百字节,然后将整个文件映射到内存中,然后执行通过比较位随机搜索?假设我正在寻找"abcd" 的字符序列,我能否以某种方式获得"abcd" 的压缩版本的位序列,然后在文件中搜索它?谢谢。

【问题讨论】:

  • 取决于压缩算法它可以工作,但压缩不一定尊重字节边界,所以搜索可能真的很痛苦。

标签: java string search compression


【解决方案1】:

您不能使用 GZIP 或类似方法来执行此操作,因为每个字节的编码会随着流的处理而改变。即,确定字节含义的唯一方法是读取之前的所有字节。

如果您想随机访问数据,可以将字符串分成更小的部分。这样你只需要解压缩一段相对较短的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多