如何读取文件夹中存在的所有Zip文件,并创建包含所有内容的新文本文件

用户名

我只能读取一个zip文件,但文件夹中并不全部存在,以下是代码:我将使用此技术读取大多数文件,请帮助我

import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.Scanner;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

import javax.imageio.ImageIO;

public class ZipReader 
{

    public static void main(String[] args) throws IOException 
    {


        ZipFile ZipFile = new ZipFile("PATH");
        Enumeration<? extends ZipEntry> entries = ZipFile.entries();

        while(entries.hasMoreElements()){
            ZipEntry entry = entries.nextElement();
            InputStream stream = ZipFile.getInputStream(entry);
            InputStreamReader reader = new InputStreamReader(stream, "UTF-8");
            Scanner inputStream = new Scanner(reader);
            inputStream.nextLine();

            while (inputStream.hasNext()) {
                String data = inputStream.nextLine(); // Gets a whole line
                System.out.println(data);
            }

            inputStream.close();
            stream.close();
        }
        ZipFile.close();


    }


}

代码运行后,我得到的是一个文件的输出,不是我要插入文件,而是在控制台中打印所有文件详细信息。

用户名

感谢您引用链接,我找到了解决方法:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class UnZipFiles {
    private static final Logger _LOGGER = LoggerFactory.getLogger(UnZipFiles.class);

    public void unzipAll(String path) {
        String filName;
        File folder = new File(path);
        File[] listOfFiles = folder.listFiles(); 
        for (int i = 0; i < listOfFiles.length; i++) {
            if (listOfFiles[i].isFile()) {
                filName = listOfFiles[i].getName();
                if (filName.endsWith(".zip") || filName.endsWith(".ZIP")) {
                    unZipFile(listOfFiles[i]);
                }
            }
        }
    }

    public static void main(String[] args) {

        UnZipFiles U = new UnZipFiles();
        U.unzipAll("PATH");

    }

    public void unZipFile(File zipFile) {
        byte[] buffer = new byte[1024];

        try {
            // create output directory is not exists
            File folder = new File("PATH");
            if (!folder.exists()) {
                folder.mkdir();
            }

            // get the zip file content
            ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile));
            // get the zipped file list entry
            ZipEntry ze = zis.getNextEntry();

            while (ze != null) {
               String fileName = ze.getName();
               File newFile = new File("PATH" + File.separator + fileName);

               if (_LOGGER.isDebugEnabled())
                   _LOGGER.debug("Unzipping file : {}", new Object[] {newFile.getAbsoluteFile()});

                // create all non exists folders
                // else you will hit FileNotFoundException for compressed folder
                new File(newFile.getParent()).mkdirs();

                FileOutputStream fos = new FileOutputStream(newFile);             

                int len;
                while ((len = zis.read(buffer)) > 0) {
                    fos.write(buffer, 0, len);
                }
                fos.close();   
                ze = zis.getNextEntry();
            }
            zis.closeEntry();
            zis.close();
        } catch(IOException ex) {
            _LOGGER.error("Exception occurred while unzipping!", ex);
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用文件夹名称在所有文件夹中创建空文本文件

如何自动打开给定文件夹中的所有文本文件?

如何逐步“ cd”到文本文件中的所有文件夹?

尝试合并文件夹中的所有文本文件并附加文件

从文件夹中的所有文件创建zip文件

我需要在特定日期创建的所有子文件夹中找到所有文本文件,将其打开,然后将内容复制到单个文本文件中

如何从批处理脚本中单个变量的文本文件中读取所有内容?

如何使用Java从一个文件夹中获取所有文本文件?

如何从Java读取文件夹中的所有文件?

如何随机读取文件夹中的所有文件

使用perl创建列出目录中所有文本文件的新文件

将与模式匹配的行从文件夹中的所有文本文件提取到单个输出文件

从文本文件中获取包含所有子网的文件中的所有IP

为什么getline()无法读取文本文件中的所有内容?

为什么我的glob.glob循环没有遍历文件夹中的所有文本文件?

解析多个文件夹中的文本文件并创建新文件 [shell]

如何在SSIS中基于文件夹的创建日期读取文件夹的所有文件?

如何使用pathlib在文件夹中创建包含所有文件路径的列表

如何为主目录中的所有用户创建包含文件夹的文件

如何读取 Github 存储库中的所有文本文件?

如何列出文件夹中所有.zip文件的内容以及特定文件的grep?

如何从文本文件中删除所有不包含“ @”的行?

如何从文本文件中删除包含特定字符串的所有行?

如何删除字符模式(包括模式)之后的文本文件中的所有内容(每行)?

Python:循环读取所有文本文件行

删除文件夹中所有文件,但名称中包含以下内容的文件除外

(Python) 无法打印文本文件的所有内容

从递归文件夹中删除所有zip文件

如何使用bash将子文件夹中的所有文件移动到新文件夹中?