此類實現一個輸出流過濾器,用於以 ZIP 文件格式寫入文件。包括對壓縮和未壓縮條目的支持。
構造函數:
- ZipOutputStream(輸出流輸出):創建新的 ZIP 輸出流。
- ZipOutputStream(輸出流輸出,字符集字符集):創建新的 ZIP 輸出流。
方法:
- 無效close():關閉 ZIP 輸出流以及正在過濾的流。
Syntax :public void close() throws IOException Overrides: close in class DeflaterOutputStream Throws: ZipException IOException
- 無效closeEntry():關閉當前 ZIP 條目並定位流以寫入下一個條目。
Syntax :public void closeEntry() throws IOException Throws: ZipException IOException
- 無效finish():完成 ZIP 輸出流內容的寫入,而不關閉底層流。當連續將多個過濾器應用於同一輸出流時,請使用此方法。
Syntax :public void finish() throws IOException Overrides: finish in class DeflaterOutputStream Throws: ZipException IOException
- void putNextEntry(ZipEntry e):開始寫入新的 ZIP 文件條目並將流定位到條目數據的開頭。如果當前條目仍處於活動狀態,則關閉當前條目。如果條目沒有指定壓縮方法,則使用默認壓縮方法;如果條目沒有設置修改時間,則使用當前時間。
Syntax :public void putNextEntry(ZipEntry e) throws IOException Parameters: e - the ZIP entry to be written Throws: ZipException IOException
- void setComment(字符串注釋):設置 ZIP 文件注釋。
Syntax :public void setComment(String comment) 參數: comment - the comment string Throws: IllegalArgumentException
- 無效setLevel(int級別):設置 DEFLATED 後續條目的壓縮級別。默認設置為 DEFAULT_COMPRESSION。
Syntax :public void setLevel(int level) 參數: level - the compression level (0-9) Throws: IllegalArgumentException
- 無效setMethod(int方法):設置後續條目的默認壓縮方法。隻要未為單個 ZIP 文件條目指定壓縮方法,並且最初設置為 DEFLATED,就會使用此默認值。
Syntax :public void setMethod(int method) 參數: method - the default compression method Throws: IllegalArgumentException
- void write(byte[] b, int off, int len):將字節數組寫入當前 ZIP 條目數據。該方法將阻塞,直到所有字節都被寫入。
Syntax :public void write(byte[] b, int off, int len) 參數: b - the data to be written off - the start offset in the data len - the number of bytes that are written Throws: ZipException IOException
程序:
//Java program demonstrating ZipOutputStream methods
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
class ZipOutputStreamDemo
{
public static void main(String[] args) throws IOException
{
FileOutputStream fos = new FileOutputStream("zipfile");
ZipOutputStream zos = new ZipOutputStream(fos);
//illustrating setMethod()
zos.setMethod(8);
//illustrating setLevel method
zos.setLevel(5);
ZipEntry ze1 = new ZipEntry("ZipEntry1");
//illustrating putNextEntry method
zos.putNextEntry(ze1);
//illustrating setComment
zos.setComment("This is my first comment");
//illustrating write()
for(int i = 0; i < 10; i++)
zos.write(i);
//illustrating write(byte b[], int off, int len)
byte b[] = { 11, 12, 13};
zos.write(b);
//illustrating closeEntry()
zos.closeEntry();
//Finishes writing the contents of the ZIP output stream
// without closing the underlying stream
zos.finish();
//closing the stream
zos.close();
FileInputStream fin = new FileInputStream("zipfile");
ZipInputStream zin = new ZipInputStream(fin);
//Reads the next ZIP file entry
ZipEntry ze = zin.getNextEntry();
//the name of the entry.
System.out.println(ze.getName());
//illustrating getMethod
System.out.println(ze.getMethod());
//Reads up to byte.length bytes of data from this input stream
// into an array of bytes.
byte c[] = new byte[13];
if(zin.available() == 1)
zin.read(c);
System.out.print(Arrays.toString(c));
//closes the current ZIP entry
zin.closeEntry();
//closing the stream
zin.close();
}
}
輸出:
ZipEntry1 8 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13]
相關用法
- Java Java.util.zip.ZipEntry用法及代碼示例
- Java Java.util.zip.ZipInputStream用法及代碼示例
- Java Java.util.zip.GZIPInputStream用法及代碼示例
- Java Java.util.zip.InflaterOutputStream用法及代碼示例
- Java Java.util.zip.DeflaterInputStream用法及代碼示例
- Java Java.util.ArrayDeque.add()用法及代碼示例
- Java Java.util.ArrayDeque.addFirst()用法及代碼示例
- Java Java.util.ArrayDeque.addLast()用法及代碼示例
- Java Java.util.ArrayDeque.clear()用法及代碼示例
- Java Java.util.ArrayDeque.clone()用法及代碼示例
- Java Java.util.ArrayDeque.descendingIterator()用法及代碼示例
- Java Java.util.ArrayDeque.element()用法及代碼示例
- Java Java.util.ArrayDeque.getFirst()用法及代碼示例
- Java Java.util.ArrayDeque.getLast()用法及代碼示例
- Java Java.util.ArrayDeque.isEmpty()用法及代碼示例
- Java Java.util.ArrayDeque.iterator()用法及代碼示例
- Java Java.util.ArrayDeque.peek()用法及代碼示例
- Java Java.util.ArrayDeque.peekFirst()用法及代碼示例
- Java Java.util.ArrayDeque.peekLast()用法及代碼示例
- Java Java.util.ArrayDeque.poll()用法及代碼示例
- Java Java.util.ArrayDeque.pollFirst()用法及代碼示例
- Java Java.util.ArrayDeque.pollLast()用法及代碼示例
- Java Java.util.ArrayDeque.pop()用法及代碼示例
- Java Java.util.ArrayDeque.push()用法及代碼示例
- Java Java.util.ArrayDeque.remove()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.util.zip.ZipOutputStream class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。