此类实现一个输出流过滤器,用于以 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。