【如何在Java中正确实现LZ4,Snappy或等效压缩技术?】教程文章相关的互联网学习教程文章

java – 使用ZipFileSystem压缩一个巨大的文件夹导致OutOfMemoryError【代码】

java.nio包通过将它们视为文件系统来处理zip文件,这是一种很好的方式.这使我们能够像普通文件一样处理zip文件内容.因此,只需使用Files.copy将所有文件复制到zip文件中即可实现整个文件夹的压缩.由于子文件夹也要复制,我们需要一个访问者:private static class CopyFileVisitor extends SimpleFileVisitor<Path> {private final Path targetPath;private Path sourcePath = null;public CopyFileVisitor(Path targetPath) {this.ta...

java – GZIP压缩到一个字节数组【代码】

我正在尝试编写一个可以压缩数据的类.下面的代码失败(没有抛出异常,但目标.gz文件为空.)此外:我不想直接生成.gz文件,就像在所有示例中一样.我只想得到压缩数据,以便我可以例如在将数据写入文件之前对其进行加密. 如果我直接写一个文件一切正常:import java.io.*; import java.util.zip.*; import java.nio.charset.*;public class Zipper {public static void main(String[] args){ byte[] dataToCompress = "This is the tes...

Zlib压缩在Java中使用Deflate和Inflate类【代码】

我想尝试使用java.util.zip中的Deflate和Inflate类进行zlib压缩. 我能够使用Deflate压缩代码,但在解压缩时,我遇到了这个错误 – Exception in thread "main" java.util.zip.DataFormatException: unknown compression methodat java.util.zip.Inflater.inflateBytes(Native Method)at java.util.zip.Inflater.inflate(Inflater.java:238)at java.util.zip.Inflater.inflate(Inflater.java:256)at zlibCompression.main(zlibCompres...

java – 在JVM的压缩Oops背后捣蛋

所以我理解现在默认情况下在HotSpot VM中启用了压缩oops.从Java SE 6u23开始,它通过VM选项-XX:UseCompressedOops支持此功能.我知道它允许有效的CPU缓存利用率,因为CPU缓存可以容纳大量的引用,而不是它们必须处理64位大小的引用.但我不明白的是,如何只使用32位JVM可以处理多达264个地址. 为了简化问题,我们如何仅使用2位来处理多达24个存储器地址?这种地址方案可能的编码/解码是什么?解决方法:有关压缩oops的详细说明,请参阅John...

Java 包 压缩命令

jar uvf test.jar test.class 这样会直接把test.class 直接添加到jar包的根目录。 jar uvf test.jar com/test/test.class

java – 使用livedata压缩4个或更多异步调用【代码】

是否有任何可能的方法使用livingata并行运行多个异步调用? 假设我有4个异步调用.我想等到一切都完成后再使用所有4个调用的结果. 我能想到的一种方法就是这样public class MakeParallel {private final CountDownLatch countDown = new CountDownLatch(4);public void firstCall() {Transformation.map(makeFirstCall(), input -> {if(input.isSuccessful()) {countDownLatch.countDown();checkResult();}return input;} }public v...

java 压缩图片(只缩小体积,不更改图片尺寸)

?1.情景展示在调用腾讯身份证OCR接口的时候,由于要求图片大小只能限制在1MB以内,这样,就必须使用到图片压缩技术 2.代码展示/*** 图片处理工具类* @explain* @author Marydon* @creationTime 2019年9月3日上午10:14:17* @version 1.0* @since* @email marydon20170307@163.com*/ public class ImgUtils {/*** 压缩图片(通过降低图片质量)* @explain 压缩图片,通过压缩图片质量,保持原图大小* @param quality * 图片质量...

java – (de)使用NIO压缩文件

在线的许多示例中,使用编码缓冲区在java中对文件进行(de)压缩.但是,使用NIO,无需选择良好的缓冲区大小.我找到了文件和套接字的例子,但是有一个NIO通道用于压缩输入(例如GZIPInputStream),所以你可以使用transferFrom而不是自己创建byte []缓冲区吗?解决方法:不,还没有专门的ZIP频道……我认为你可以做到以下几点.使用NIO从任何要缓冲的通道读取.然后检索刚刚从缓冲区读取到字节数组的字节,使用ByteArrayInputStream包装数组并将其...

使用Java中的Inflater解压缩gzip压缩数据

我正在尝试使用Inflater解压缩gzip压缩数据.根据文件,If the parameter ‘nowrap’ is true then the ZLIB header and checksumfields will not be used. This provides compatibility with thecompression format used by both GZIP and PKZIP. Note: When using the ‘nowrap’ option it is also necessary to providean extra “dummy” byte as input. This is required by the ZLIB nativelibrary in order to support certa...

在没有文件I / O的情况下压缩Java中的内容【代码】

我想在不进行任何文件I / O但严格读取字节流的情况下执行CPU分析的重复压缩任务.我想用Java(我的基准测试的目标)来做这件事. 有没有人有建议怎么做?我使用了ZipEntry的Zip API,但ZipEntry触发了文件I / O. 任何建议或代码示例都非常感谢.解决方法:I used Zip API that uses ZipEntry but ZipEntry triggers file I/O.如果你使用ByteArrayOutputStream作为底层输出,我不会指望它:ByteArrayOutputStream baos = new ByteArrayOutpu...

Java / Hibernate:解压缩压缩结果【代码】

我正在尝试解压缩使用MySQL的COMPRESS函数返回的值:SQLQuery query = session.createSQLQuery("SELECT ID, COMPRESS(TEXT_COL) AS TEXT_COL FROM TABLE WHERE ID IN (1,2,3,...);").addScalar("ID", Hibernate.INTEGER).addScalar("TEXT_COL", Hibernate.TEXT); List<Object[]> list = query.list(); for (Object[] result : list) {String text = decompress(((String) result[1]).getBytes()); }(...) private String decompres...

使用Java中的DeflaterOutputStream和InflaterInputStream压缩和解压缩String【代码】

我需要在文件上保存一个字符串,我正在使用DeflaterOutputStream进行压缩.当我尝试解压缩时,我无法获得原始字符串.我得到一个未清除的符号.她是我的代码:public static void decompress() throws Exception {InputStream in=new FileInputStream("E:/codes.txt"); InflaterInputStream ini = new InflaterInputStream(in);ByteArrayOutputStream bout =new ByteArrayOutputStream(512);int b;while ((b = in.read()) != -1) {bout....

如何在Java中正确实现LZ4,Snappy或等效压缩技术?【代码】

我尝试将Java版本的LZ4实现为一种试图从大文本文件中搜索数据的搜索引擎程序.我只是压缩输出流并将其存储到没有名称的txt文件或文件中.但是,我意识到所谓的压缩文件的大小没有减小,但它的大小甚至比原始文件大. 最后我不得不求助于zip4j,因为它对我有用. 我想知道如何使用LZ4或Snappy罐来正确压缩/解压缩? 另外,我如何使用这些算法压缩包含许多文件的单个文件夹? 谢谢!解决方法:我遇到了类似的问题.我试图通过本地网络以8192字节...

java – 如果对象上的属性相同,则压缩对象列表【代码】

我有一个对象列表,如下所示:public class MyObject {String id;List<String> list;MyObject(String id, List<String> list) {this.id = id;this.list = list;}String getId() {return id;}List<String> getList() {return list;} }我想压缩列表,以便如果两个MyObject具有相同的id,它们将合并为一个. 我能想到的最好的解决方案是覆盖MyObject中的equals方法,这样如果它们的id相同,则2个对象是相同的,并执行如下操作:List<MyObject...

如何用Java 8 Stream压缩嵌套的列表映射?【代码】

参见英文答案 > In Java, how do I efficiently and elegantly stream a tree node’s descendants? 4个我有一个看起来像这样的结构:public class Category {private String tag;private String name;private String description;private List<Item> items; } 和Item看起来像这样public class Item {private String itemTag;private String itemName;private String itemType;private Integer...

技术 - 相关标签