Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在java中搜索包含comrpessed对象的文件?_Java_String_Search_Compression - Fatal编程技术网

是否可以在java中搜索包含comrpessed对象的文件?

是否可以在java中搜索包含comrpessed对象的文件?,java,string,search,compression,Java,String,Search,Compression,我从甲骨文中读到以下内容 我可以在对象的压缩版本上执行方法吗,例如isempty(zip(serial(x)) 由于对象的编码,这对于任意对象来说是不可行的。对于特定对象(如字符串),可以比较结果位流。编码是稳定的,因为每次对同一对象进行编码时,它都被编码到同一组位 所以我有了这个想法,比如说,如果我有一个4M长的字符数组,我是否可以使用GZIPOutputStream将它压缩到几百字节,然后将整个文件映射到内存中,并通过比较位对其进行随机搜索?假设我正在查找“abcd”的字符序列,我是否可以以

我从甲骨文中读到以下内容

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

由于对象的编码,这对于任意对象来说是不可行的。对于特定对象(如字符串),可以比较结果位流。编码是稳定的,因为每次对同一对象进行编码时,它都被编码到同一组位


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

您不能使用GZIP或类似工具来执行此操作,因为在处理流时,每个字节的编码都会发生变化。i、 e.确定字节含义的唯一方法是读取之前的所有字节


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

根据压缩算法,它可能会工作,但压缩不一定会尊重字节边界,因此搜索可能真的很痛苦。