Tag: zipfile

从byte (Java)读取时提取ZipFile条目的内容

我有一个zip文件,其内容显示为byte [], 但原始文件对象不可访问 。 我想阅读每个条目的内容。 我能够从字节的ByteArrayInputStream创建一个ZipInputStream,并可以读取条目及其名称。 但是我看不到提取每个条目内容的简单方法。 (我看过Apache Commons,但也看不到那么简单的方法)。 更新 @ Rich的代码似乎解决了这个问题,谢谢 QUERY为什么两个例子的乘数都是* 4(128/512和1024 * 4)?

如何使用ZipOutputStream创建压缩的Zip存档,以便ZipEntry的方法getSize()返回正确的大小?

考虑将单个文件test_file.pdf放入zip archive test.zip的代码示例,然后阅读此存档: import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; public class Main { public static void main(String[] args) { File infile = new File(“test_file.pdf”); try ( FileInputStream fis = new FileInputStream(infile); ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(“test.zip”)); ) { int bytesRead; byte[] buffer = new byte[1024]; ZipEntry entry = new ZipEntry(“data”); entry.setSize(infile.length()); zos.putNextEntry(entry); […]

来自ZipInputStream的ZipEntry的getInputStream(不使用ZipFile类)

如何在不使用ZipFile类的情况下从ZipInputStream获取ZipEntry的InputStream ?

Eclipse,Java:如何以zip格式导入库?

好的,这是基本的,但似乎这样做的正常方式对我不起作用。 我正在尝试导入jSSC库,用于与串口等进行通信。最新的库是jSSC-0.9.0-Release 所以,我尝试了以下内容: 将zip文件放在工作区中,并将其作为“外部jar”添加到项目属性 – > java构建路径 – >库中。 然后我尝试从库中包含一些东西: import jssc.SerialPortList; 错误:无法解析导入jssc 然后我将zip文件放在项目根目录中名为/ libs的文件夹中,并将其添加为“jar”(不是外部)。 结果:同样的错误。 对于这种导入库的简单操作,我在这里缺少什么基本信息/操作?

Java:具有非静态文件名的Zip文件

我在这篇文章中找到了这个ZipUtils类: 如何使用java压缩文件夹本身 我修改了它,所以我可以传递一个zip文件名。 但是,它的唯一工作方式是使用硬编码的静态字符串。 zippedFile字符串是从数据库中获取的。 我已经比较了dbZippedFile和hardcodedZippedFile,它们都是相同的…也许在使用FileOutputStream的非静态字符串时会出现问题? 尝试压缩目录时只会出现此问题(一个文件正常工作)。 有谁知道我做错了什么或有一个好的选择? 它永远不会抛出错误。 它只是无法创建文件。 在代码片段中,如果将zippedFile.getPath()替换为硬编码字符串表示forms(即“D:\\ dir \\ file.zip”),则可以正常工作。 码: DateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd_HH-mm-ss”); Date date = new Date(); String zipName = name+ “_” + dateFormat.format(date) + “.zip”; zippedFile = new File(archive, zipName); if (zippedFile .exists()) { zippedFile .delete(); } ZipUtils.main(dirToZip.getPath(), zippedFile.getPath()); 类: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; […]

直接读取Zip文件中的文件 – Java

我的情况是我有一个包含一些文件(txt,png,…)的zip文件,我想直接用它们的名字来读它,我测试了下面的代码但没有结果(NullPointerExcepion): InputStream in = Main.class.getResourceAsStream(“/resouces/zipfile/test.txt”); BufferedReader br = new BufferedReader(new InputStreamReader(in, “UTF-8”)); resources是一个包, zipfile是一个zip文件。

如何在不提取java的情况下读取Zipped文件的内容

我的文件名为ex.zip 。 在这个例子中,Zip文件只包含一个具有相同名称的文件(即“ex.txt”),这个文件非常大。 我不想每次都提取zip文件。因此我需要在不解压缩zip文件的情况下读取文件的内容(ex.txt)。 我尝试了一些类似下面的代码但是我只能读取变量中文件的名称。 如何读取文件的内容并将其存储在变量中? 先感谢您 fis=new FileInputStream(“C:/Documents and Settings/satheesh/Desktop/ex.zip”); ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis)); ZipEntry entry; while((entry = zis.getNextEntry()) != null) { i=i+1; System.out.println(entry); System.out.println(i); //read from zis until available }

在创建资源路径时从ZipFileSystemProvider获取FileSystemNotFoundException

我有一个Maven项目,在一个方法中我想为我的资源文件夹中的目录创建一个路径。 这样做是这样的: try { final URI uri = getClass().getResource(“/my-folder”).toURI(); Path myFolderPath = Paths.get(uri); } catch (final URISyntaxException e) { … } 生成的URI看起来像jar:file:/C:/path/to/my/project.jar!/my-folder 。 堆栈跟踪如下: Exception in thread “pool-4-thread-1” java.nio.file.FileSystemNotFoundException at com.sun.nio.zipfs.ZipFileSystemProvider.getFileSystem(ZipFileSystemProvider.java:171) at com.sun.nio.zipfs.ZipFileSystemProvider.getPath(ZipFileSystemProvider.java:157) at java.nio.file.Paths.get(Paths.java:143) URI似乎有效。 之前的部分! 指向生成的jar文件及其后面的部分到归档根目录中的my-folder 。 我之前使用过这些说明来创建资源的路径。 为什么我现在得到例外?