Tag: 压缩

写“压缩”数组以提高IO性能?

我有一个int和float数组,每个长度为2.2亿(固定)。 现在,我想将这些数组存储/上传到内存和磁盘。 目前,我正在使用Java NIO的FileChannel和MappedByteBuffer来解决这个问题。 它工作正常,但是将数组存储/上传到内存到磁盘需要大约5秒钟(挂钟时间)。 现在,我想让它更快。 在这里,我应该提到大多数数组元素都是0(接近52%)。 喜欢: int arr1 [] = { 0 , 0 , 6 , 7 , 1, 0 , 0 …} 任何人都可以帮助我,有没有很好的方法来提高速度,不存储或加载那些0。 这可以通过使用Arrays.fill(array,0)来补偿。

在java中压缩和解压缩7z文件

我想使用java代码将文件压缩为zip,rar和7z格式。 我还想在指定位置解压缩这些文件。 谁能告诉我如何在java中使用7-zip压缩和解压缩文件?

gzip存档里面有多个文件

我需要创建一个包含多个文件的gzip存档,如何在没有ArchiveEntry可用于java.util.zip.GZIPOutputStream类的情况下执行此操作?

启用压缩的Tomcat会导致OS X High Sierra出错

我们已经在OS X上使用Tomcat(v7)很长一段时间了,从未遇到过任何问题。 但是,在将操作系统更新到High Sierra之后,当在server.xml中启用压缩时,Web应用程序将不再起作用。 Chrome会不断显示ERR_CONTENT_DECODING_FAILED(显然没有任何内容显示)。 当压缩关闭时,一切正常。 我认为问题的根源是Apple在High Sierra中升级zlib。 塞拉利昂的一切都运转良好。 Tomcat日志文件看起来完美无瑕 – 没有提到任何错误。 有没有人遇到相同的问题并设法解决它或知道一个可行的解决方法而不禁用压缩 ? 此外,如果有人可以确认较新版本的Tomcat在High Sierra上没有遇到此问题,也会有所帮助。 谢谢你的帮助。

从包含大量文件的zip文件中提取1个文件的最快方法是什么?

我试过java.util.zip包,它太慢了。 然后我找到了LZMA SDK和7z jbinding,但他们也缺少一些东西。 LZMA SDK没有提供一种如何使用的文档/教程,这非常令人沮丧。 没有javadoc。 虽然7z jbinding不提供仅提取1个文件的简单方法,但是它只提供了提取zip文件的所有内容的方法。 此外,它没有提供指定放置解压缩文件的位置的方法。 请问???

Mule Zip文件并向FTP服务器发送压缩文件

我知道Mule非常支持使用该元素对数据进行gzip压缩。 但是客户端现在想要压缩压缩,因为文件必须作为zip压缩文件放在FTP上:( 我遇到以下情况的mule子困难: 我创建了一个文件进来的Spring bean。我想使用ZipOutputStream类压缩这个文件并将它传递给我们的ftp。 这是我的流程配置: 这是我的zip压缩器的代码: @Component public class ZipCompressor implements Callable { private static final Logger LOG = LogManager.getLogger(ZipCompressor.class.getName()); @Override @Transactional public Object onCall(MuleEventContext eventContext) throws Exception { if (eventContext.getMessage().getPayload() instanceof File) { final File srcFile = (File) eventContext.getMessage().getPayload(); final String fileName = srcFile.getName(); final File zipFile = new File(fileName + “.zip”); try […]

Java创建的.zip文件不支持中文(utf-8)

我想使用Java(jdk,ant.jar或commons-compress)创建.zip文件。 但是如果ZipEntry的名称包含非英语(例如中文,日文),它将在WinRAR或Windows Compress中显示不可读的代码(在WinRAR中正确压缩显示)。 谁能帮我!!!

减少jar文件大小?

是否有一个很好的应用程序通过消除冗余类/方法/常量池元素来减少jar文件大小? (即无法从一组固定的入口点到达,假设没有reflection) 当我只是使用他们的几种方法时,我已经厌倦了拉臃肿的库。 (我不是在谈论小的“本地”优化,比如缩小名称。我正在考虑更多的东西进行全局分析,以确定使用哪些类/方法/变量,给定一组入口点(包括reflection条目)点),并删除未使用的所有内容。 我的webapp就像是45MB,主要是由于30多个库,而且我很确定我只使用了每个库的一小部分。

压缩和解压缩流

我发现这篇关于在JAVA中实现的简单代理服务器的文章: http://www.java2s.com/Code/Java/Network-Protocol/Asimpleproxyserver.htm 代码只是从客户端获取一些流,然后将其发送到服务器,然后从服务器获取流并将响应发送到客户端。 我想要做的是在发送之前压缩这些流,并在收到之后对其进行解压缩。 我找到了GZIPInputStream类,但我不确定如何使用它,我在互联网上找到的东西对我没有帮助。 我要么不明白这么多,要么对我来说不是一个好的解决方案。 我的想法也是如此,但我不确定它是否正常: final InputStream streamFromClient = client.getInputStream(); final OutputStream streamToClient = client.getOutputStream(); final InputStream streamFromServer = server.getInputStream(); final OutputStream streamToServer = server.getOutputStream(); InputStream gzipStream = new GZIPInputStream(streamFromClient ); try { while ((bytesRead = gzipStream.read(request)) != -1) { streamToServer.write(request, 0, bytesRead); streamToServer.flush(); } } catch (Exception e) { System.out.println(e); } 现在发送到服务器的数据应该在发送之前进行压缩(但我不确定它是否是正确的解决方案)。 […]

如何获取压缩文件(通过索引)并重新创建原始文件? (JAVA)

问题的背景 我一直在开发一些代码,首先关注的是读取字符串并创建文件。 其次,将字符串拆分为数组。 然后获取数组中每个单词的索引,最后删除重复项并将其打印到不同的文件。 我目前已经为此创建了代码,这是一个链接https://pastebin.com/gqWH0x0 (也有一个菜单系统),但它相当长,所以我没有在这个问题中实现它。 压缩方法通过哈希映射完成,获取数组的索引并将它们映射到相关的单词。 这是一个例子: 原文:“海海见海看见” 输出:见[2,4,5],海[0,1,3], 题 下一阶段是将输出恢复到原始状态。 我目前相对较新的java,所以我不知道所需的技术。 代码应该能够获取输出文件(如上所示)并将其放回原始文件中。 我目前的想法是你只需要重写这个hashmap(如下)。 这样想我会不正确? 我以为我应该首先检查堆栈溢出! Map<String, Set> seaMap = new HashMap(); //new hashmap for (int seaInt = 0; seaInt < sealist.length; seaInt++) { if (seaMap.keySet().contains(sealist[seaInt])) { Set index = seaMap.get(sealist[seaInt]); index.add(seaInt); } else { Set index = new HashSet(); index.add(seaInt); seaMap.put(sealist[seaInt], index); } […]