Esta clase implementa un filtro de flujo de salida para escribir archivos en formato de archivo ZIP. Incluye soporte para entradas comprimidas y sin comprimir.
Constructor:
- ZipOutputStream(OutputStream out) : crea un nuevo flujo de salida ZIP.
- ZipOutputStream(OutputStream out, Charset charset) : crea un nuevo flujo de salida ZIP.
Métodos:
- void close() : cierra el flujo de salida ZIP, así como el flujo que se está filtrando.
Syntax :public void close() throws IOException Overrides: close in class DeflaterOutputStream Throws: ZipException IOException
- void closeEntry() : Cierra la entrada ZIP actual y posiciona la secuencia para escribir la siguiente entrada.
Syntax :public void closeEntry() throws IOException Throws: ZipException IOException
- void finish() : Termina de escribir el contenido del flujo de salida ZIP sin cerrar el flujo subyacente. Utilice este método cuando aplique varios filtros en sucesión al mismo flujo de salida.
Syntax :public void finish() throws IOException Overrides: finish in class DeflaterOutputStream Throws: ZipException IOException
- void putNextEntry(ZipEntry e) : comienza a escribir una nueva entrada de archivo ZIP y coloca la secuencia al comienzo de los datos de entrada. Cierra la entrada actual si aún está activa. Se usará el método de compresión predeterminado si no se especificó ningún método de compresión para la entrada, y se usará la hora actual si la entrada no tiene una hora de modificación establecida.
Syntax :public void putNextEntry(ZipEntry e) throws IOException Parameters: e - the ZIP entry to be written Throws: ZipException IOException
- void setComment(String comment) : Establece el comentario del archivo ZIP.
Syntax :public void setComment(String comment) Parameters: comment - the comment string Throws: IllegalArgumentException
- void setLevel(int level) : Establece el nivel de compresión para las entradas posteriores que están DESINFLADAS. La configuración predeterminada es DEFAULT_COMPRESSION.
Syntax :public void setLevel(int level) Parameters: level - the compression level (0-9) Throws: IllegalArgumentException
- void setMethod(int method) : establece el método de compresión predeterminado para las entradas posteriores. Este valor predeterminado se utilizará siempre que no se especifique el método de compresión para una entrada de archivo ZIP individual y se establezca inicialmente en DEFLATED.
Syntax :public void setMethod(int method) Parameters: method - the default compression method Throws: IllegalArgumentException
- void write(byte[] b, int off, int len) : escribe una array de bytes en los datos de entrada ZIP actuales. Este método se bloqueará hasta que se escriban todos los bytes.
Syntax :public void write(byte[] b, int off, int len) Parameters: b - the data to be written off - the start offset in the data len - the number of bytes that are written Throws: ZipException IOException
Programa :
//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(); } }
Producción :
ZipEntry1 8 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13]
Este artículo es una contribución de Nishant Sharma . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA