當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java ZipFile getInputStream()用法及代碼示例



getInputStream()函數是java.util.zip軟件包的一部分。該函數返回作為參數傳遞的特定ZipEntry的InputStream。關閉Zip文件也將關閉此函數生成的所有InputStream。函數簽名:

public InputStream getInputStream(ZipEntry e)

用法:

zip_file.getInputStream(entry);

參數:該函數將ZipEntry對象作為參數。
返回值:該函數返回一個InputStream對象,以讀取ZipFile條目的內容。
Exceptions:


  • 如果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對象以讀取文件內容。zip文件中不存在“ file4.cpp”。

// 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://docs.oracle.com/javase/7/docs/api/java/util/zip/ZipFile.html#getInputStream(java.util.zip.ZipEntry)



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 Java ZipFile getInputStream() function with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。