📜  Java ZipFile getInputStream()函数及示例

📅  最后修改于: 2022-05-13 01:55:28.032000             🧑  作者: Mango

Java ZipFile getInputStream()函数及示例


getInputStream()函数是Java.util.zip 包的一部分。该函数返回作为参数传递的特定 ZipEntry 的 InputStream。关闭 Zip 文件也将关闭该函数生成的所有 InputStream。
函数签名:

public InputStream getInputStream(ZipEntry e)

句法 :

zip_file.getInputStream(entry);

参数:该函数将 ZipEntry 对象作为参数。
返回值:该函数返回一个 InputStream 对象来读取 ZipFile 条目的内容。
例外:

  • 如果 zip 文件已关闭,该函数将引发IllegalStateException
  • 如果发生 ZIP 格式错误,该函数将抛出ZipException
  • 如果发生 I/O 错误,该函数将抛出IOException

    下面的程序说明了 getInputStream()函数的使用

    示例 1:我们将创建一个名为 zip_file 的文件并使用 getEntry()函数获取 zip 文件条目,然后获取 Input Stream 对象以读取文件的内容。“file.zip”是存在于 f: 目录中的 zip 文件.

    // Java program to demonstrate the
    // use of getInputStream() function
      
    import java.util.zip.*;
    import java.util.Enumeration;
    import java.util.*;
    import java.io.*;
      
    public class solution {
        public static void main(String args[])
        {
            try {
                // Create a Zip File
                ZipFile zip_file = new ZipFile("f:\\file.zip");
      
                // get the Zip Entry using
                // the getEntry() function
                ZipEntry entry = zip_file.getEntry("file1.cpp");
      
                // get the Input Stream
                // using the getInputStream()
                // function
                InputStream input = zip_file.getInputStream(entry);
      
                // Create a scanner object
                Scanner sc = new Scanner(input);
      
                System.out.println("Contents:");
      
                // Display the contents Zip Entry
                while (sc.hasNext()) {
                    System.out.println(sc.nextLine());
                }
      
                // Close the scanner
                sc.close();
            }
            catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    }
    
    输出:
    Contents:
    This is a file in ZIP file.
    

    示例 2:我们将创建一个名为 zip_file 的文件并使用 getEntry()函数获取 zip 文件条目,然后获取 Input Stream 对象以读取文件的内容。“file4.cpp”不存在于 zip 文件中。

    // Java program to demonstrate the
    // use of getInputStream() function
      
    import java.util.zip.*;
    import java.util.Enumeration;
    import java.util.*;
    import java.io.*;
      
    public class solution {
        public static void main(String args[])
        {
            try {
                // Create a Zip File
                ZipFile zip_file = new ZipFile("f:\\file.zip");
      
                // get the Zip Entry using
                // the getEntry() function
                ZipEntry entry = zip_file.getEntry("file4.cpp");
      
                // Get the Input Stream
                // using the getInputStream()
                // function
                InputStream input = zip_file.getInputStream(entry);
      
                // Create a scanner object
                Scanner sc = new Scanner(input);
      
                System.out.println("Contents:");
      
                // Display the contents Zip Entry
                while (sc.hasNext()) {
                    System.out.println(sc.nextLine());
                }
      
                // Close the scanner
                sc.close();
            }
            catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    }
    
    输出:
    null
    

    函数抛出错误。

    参考: https: Java Java.util.zip.ZipEntry)