问题标签 [zipinputstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何在 Android 上解压缩更大的 zip?
我在我的 Android Studio 项目中解压缩文件,如下所示:
原始的 zip 文件大约是。30 MB 大,仅包含 *.txt 文件。其中两个文本文件大于 100 MB,因此我收到以下错误消息:
E/AndroidRuntime:致命异常:主进程:com.example.myapp,PID:15821 java.lang.OutOfMemoryError:无法分配 167083628 字节分配,其中 33542384 个空闲字节和 136MB 直到在 java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream .java:91) 在 java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201) 在 com.example.myapp.managers.UnzipManager.decompressZip(UnzipManager.java:104) 在 com.example.myapp.managers.UnzipManager。 (UnzipManager.java:43) 在 com.example.myapp.MyActivity.onCreate(MyActivity.java:103) 在 android.app.Activity.performCreate(Activity.java:6272) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation. java:1108) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387) 在 android。app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 在 android.os.android.app.ActivityThread.access$900(ActivityThread.java:157) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) 在 android.os。 Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5551) 在 java.lang.reflect.Method.invoke (本机方法)在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)1356) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5551) 在 java.在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 的 lang.reflect.Method.invoke(Native Method) )1356) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5551) 在 java.在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 的 lang.reflect.Method.invoke(Native Method) )
如何解压缩这些文件?
java - java升级到1.8解压文件时出现问题
我正在使用核心java.util.zip
课程。现在在使用以下代码解压缩客户端文件时:
我收到以下错误:
然而,相同的代码在 JDK 1.6 中运行良好。
我搜索了一整天,但找不到任何与 Java JDK 中的代码对应的任何更改。
请帮助我找到合适的原因或链接来支持我的发现。
java - 解密困难:错误是 BadPaddingException:给定最终块未正确填充
试图解密压缩文件。有些工作,有些则没有。那些不起作用的在尝试关闭 ZipInputStream 时会给出错误。
在用户计算机上创建文件时这工作正常,但我想避免这种安全风险。我以为我最终通过删除文件处理了所有风险,但目睹了文件未被删除的情况。因此,我想完全避免这种可能性。使用使用流来解密和解压缩以限制内存使用?让我的代码达到这一点。
我已经阅读了几个关于填充等的地方,但我承认我已经继承了这段代码并且我仍在学习曲线上。
我得到的错误在下面并被抛出在最后一行(try-with-resources 块的末尾。
我已经调试并浏览了代码。引发此错误的文件未加密并解压缩并正确读取。所有数据都被读出,“行”在各个方面都是完整的。它只是不会关闭 ZipInputStream。有任何想法吗?
java - 替换 Zip 文件而不用 Java 解压缩
我有一个 zip 文件,我想用另一个文件替换其中的一个文件。因此,不需要删除 zip 条目,只需将 zip 条目的文件替换为另一个文件即可。
这是我尝试过的。
我有一个名为的文件 zip 条目:
我有一个文件在位置 d 驱动器的位置
我可以通过替换我要替换的文件将文件复制到不同的 zip 文件中。但这实际上是不需要的(创建不同的文件)。那么我应该怎么做才能用我的自定义文件替换文件。
我在 Stackoverflow 中搜索了不同的帖子,但找不到我需要的东西。我读到无法删除 zip 条目,但是替换它呢?请帮忙
android-studio - 如何从分成两个文件夹的 100k 音频文件集合中播放单个音频文件?
我已将两个媒体文件夹放入一个 zip 文件夹中,该 zip 文件夹中的媒体文件总数为 100k。我需要从 zip 文件夹的特定文件夹中播放单个文件。问题是,首先完整读取 Zip 文件夹的全部内容,然后访问必要的文件。因此,播放单个文件需要超过 55 秒。我需要一个解决方案来减少播放音频文件所消耗的时间。
下面是我的代码:
java - Java ZipFile api 无法提取大文件
我正在阅读一个大的 zip 文件(超过 2.5GB)。当我尝试解压缩 2.5GB 以上的文件时,我得到一个例外
当我使用 ZipInputStream 而不是 ZipFile 时,不会发生此错误。为什么 ZipFile api 中会出现这种行为。
java - Android ZipInputStream ZipEntry 不读取到文件末尾
我有一个包含 json 文件和一些 base64 解码图像的压缩文件,我使用以下代码从中读取数据:
// 这不是问题:问题是zis.read(buffer, 0, (int) size)
没有从文件中读取所有数据,所以我得到一个JSONException
编辑:
问题不在于从流中读取数据,它读取所有数据,但我认为问题在于编码这是 JSONException:
2959607 是字符串的长度
java - InputStream.read(byte[]) 是如何工作的?
我正在尝试解压缩一个 zip 文件夹,但我无法理解它是如何ZipInputStream.read(byte[])
工作的。这段代码工作得很好,但我不知道我的文件是否比我设置的操作缓冲区大。
我确实阅读了文档,但我发现它令人困惑,请帮助。
java - Java - 解析 ZipInputStream 时出现 OutOfMemoryError
我在读取从 Web 服务检索到的 zip 文件的内容时遇到问题。
zip 文件存储在一个字节数组bytes
中,如下面的代码所示。
当我执行时,IOUtils.toString(zis)
我得到一个OutOfMemoryError: Java heap space。
我确信问题是由 zip 中包含的 json 文件的尺寸引起的,大于 150MB。我尝试过使用其他较小的文件,并且可以毫无问题地获取 json 内容。
有没有办法读取 zip 的内容而不将其存储在内存中?
编辑: 我知道我可以增加我的堆内存,但我正在寻找基于代码的解决方案,因为它可以在任何环境中工作。
java - Java:Zipinputstream 到 Zipoutputstream 导致“未找到中央目录结尾签名”错误
我尝试将 Zip 从 a 复制Zipinputstream
到 a Zipoutputstream
。
我将 Zip 存储byte[]
在 Oracle 数据库中。我Zipinputstream
用来解压缩 zip(稍后我想编辑 Zip),然后将其放入 aZipoutputstream
中以获取新的byte[]
并使用此数组稍后通过 a 下载文件ServletOutputStream
。当我创建一个新文件时 - 没有Zipinputstream
- 它可以工作。但是当我使用时,Zipinputstream
我得到了错误。
这是我的代码: