java 代码
- package ziptest;
-
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipInputStream;
-
-
-
-
-
- public class ZipTest {
- public static void main(String[] args) {
-
- try {
- ZipInputStream zin = new ZipInputStream(new FileInputStream(
- "d:/websale_rfid.zip"));
- FileInputStream filein = new FileInputStream("d:/websale_rfid.zip");
- ZipInputStream zin2 = new ZipInputStream(zin);
-
- ZipEntry entry;
- try {
- while ((entry = zin.getNextEntry()) != null) {
- System.out.println("++++++++++++++++" + (entry.getName()));
- zin.closeEntry();
- }
-
- while ((entry = zin2.getNextEntry()) != null) {
- System.out.println("~~~~~~~~~~~~~~~~~~" + (entry.getName()));
- zin2.closeEntry();
- }
-
- } catch (IOException e) {
- e.printStackTrace();
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
-
- }
-
-
输出为
++++++++++++++++forms.xml
++++++++++++++++gpd.xml
++++++++++++++++processdefinition.xml
++++++++++++++++processimage.jpg
而~~~~并没有输出
ZipInputStream zin2 = new ZipInputStream(zin); 为什么代码中zin2没能正确获得...???
如果我想重新读取一次zip流该怎么实现呢?------------------先不要告诉我根据FileInputStream再生成一次.......
直接根据原来的zip流不可以吗?
分享到:
相关推荐
1. **自定义解压逻辑**:可以创建一个自定义的`ZipInputStream`包装类,覆盖`getNextEntry()`方法,以便在读取文件名时,先将其转换为正确的字符编码。 2. **使用第三方库**:例如Apache Commons Compress或Google...
1、文件解压zip通用机制方法、一行代码支持中文; 2、一行代码解决 java.util.zip.ZipInputStream 中文乱码; 3、删除指定路径内的所有文件通用机制方法;
java实现文件解压缩,ZipInputStream,ZipOutputStream
基于GUI用IO流中的ZipOutputStream ,ZipInputStream实现文件的解压与压缩, 如文件解压函数如下 private void unZip(String zipFileName, String outputDirectory)throws Exception { InputStream in=null; ...
在这个例子中,有一个名为`ZipCopyTest`的类,它包含一个主方法`main`,以及两个辅助方法`copyZipStream`和`copyStream`。 在`main`方法中,首先定义了源文件`srcPath`和目标文件`outPath`,接着创建了`...
首先创建一个FileStream用于读取zip文件,然后用ZipInputStream包裹这个FileStream。接下来,遍历ZipInputStream中的每个ZipEntry,为每个Entry创建一个新的FileStream,将解压缩的数据写入这个新的FileStream。 ...
我们可以使用ZipInputStream类的构造函数创建一个ZipInputStream对象,然后使用其getNextEntry()方法获取Zip文件中的每个Entry。 在上面的代码中,我们使用了ZipInputStream类来读取Zip文件。首先,我们创建了一个...
然后,遍历`ZipInputStream`,每次读取一个`ZipEntry`,创建对应的`FileOutputStream`,并将`ZipInputStream`的数据写入到新的文件。 6. **指定解压目录**: 在解压前,确保目标目录存在。如果不存在,使用`File....
4. **解压过程**:解压时,我们需要创建一个`ZipInputStream`,然后逐个读取ZIP文件中的`ZipEntry`。在读取每个条目之前,我们需要使用正确密码设置`ZipInputStream`。然后,我们可以创建一个输出流,将解压的条目...
总结,这个简单的Java解压Zip工程的核心是利用Java标准库中的`java.util.zip`包,通过`ZipInputStream`和`ZipEntry`来解压ZIP文件中的每一个条目,并将它们保存到本地文件系统中。在实际项目中,我们可以根据需求...
2. 创建`ZipInputStream`:使用`new ZipInputStream(fileInputStream)`创建一个Zip输入流。 3. 遍历Zip条目:通过调用`ZipInputStream.getNextEntry()`来获取每个条目,直到没有更多的条目。 4. 检查条目类型:对于...
开发者可以通过`ZipInputStream.getNextEntry`获取下一个条目,然后使用`ZipEntry.getName`和`ZipEntry.getSize`等方法获取相关信息。 4. **解压缩过程**:要解压缩ZIP文件,我们首先创建一个ZipInputStream,然后...
首先,我们要提到的是一个名为“zip4j”的开源库,它是Java平台上的一个强大的压缩和解压库,同时也支持Android平台。在标题和描述中提及的资源中,我们可以看到`zip4j_1.3.1.jar`,这是zip4j的1.3.1版本的二进制库...
1. 创建一个`ZipInputStream`实例,将其关联到ZIP文件的输入流。 2. 使用`ZipInputStream`的`getNextEntry`方法获取下一个ZIP条目。 3. 读取条目的数据,通常通过`BufferedReader`或`BufferedInputStream`进行。 4. ...
对于解压缩,你需要一个`FileInputStream`指向Zip文件,然后创建一个`ZipInputStream`实例。每次调用`getNextEntry`方法时,它都会返回下一个Zip条目。你可以检查条目的名称,然后根据需要读取内容。每个条目读取...
调用`ZipInputStream.getNextEntry()`获取下一个条目,然后将`ZipInputStream`的数据写入对应的`FileOutputStream`。 - 当所有条目都处理完毕后,关闭`ZipInputStream`。 在处理中文文件名时,需要注意字符编码...
在解压ZIP文件时,首先需要创建一个`FileInputStream`对象来读取ZIP文件,然后通过`new ZipInputStream(fileInputStream)`创建一个`ZipInputStream`对象。接下来,我们可以通过调用`ZipInputStream`的`getNextEntry...
同样,解压缩时,你需要创建一个`ZipInputStream`,然后逐个读取并解压文件。 例如,压缩一个目录中的所有文件,可以使用以下步骤: 1. 遍历目录,获取所有文件和子目录。 2. 对每个文件,创建一个`...
2. 创建一个`ZipInputStream`,传入`FileInputStream`。 3. 循环调用`getNextEntry()`来获取ZIP文件中的每一个条目。 4. 对于每个条目,如果是个文件,创建一个新的文件或目录(根据条目的类型)。 5. 使用`read...
1. **ZipInputStream**: 这个类实现了输入流接口,可以从一个字节流中读取ZIP文件的内容。我们可以使用它逐个读取ZIP文件中的每个条目(entry)。 2. **ZipEntry**: 表示ZIP文件中的一个条目,包含条目的名称、大小...