- java.util.zip Package Classes
- java.util.zip - Home
- java.util.zip - Adler32
- java.util.zip - CheckedInputStream
- java.util.zip - CheckedOutputStream
- java.util.zip - CRC32
- java.util.zip - Deflater
- java.util.zip - DeflaterInputStream
- java.util.zip - DeflaterOutputStream
- java.util.zip - GZIPInputStream
- java.util.zip - GZIPOutputStream
- java.util.zip - Inflater
- java.util.zip - InflaterInputStream
- java.util.zip - InflaterOutputStream
- java.util.zip - ZipEntry
- java.util.zip - ZipFile
- java.util.zip - ZipInputStream
- java.util.zip - ZipOutputStream
- java.util.zip Package Extras
- java.util.zip - Exceptions
- java.util.zip - Error
- java.util.zip Useful Resources
- java.util.zip - Quick Guide
- java.util.zip - Useful Resources
- java.util.zip - Discussion
java.util.zip.ZipEntry.setSize() Method Example
Description
The java.util.zip.ZipEntry.setSize(long size) method sets the uncompressed size of the entry data.
Declaration
Following is the declaration for java.util.zip.ZipEntry.setSize(long size) method.
public void setSize(long size)
Parameters
size − the uncompressed size in bytes.
Exceptions
IllegalArgumentException − if the specified size is less than 0, is greater than 0xFFFFFFFF when ZIP64 format is not supported, or is less than 0 when ZIP64 is supported.
Pre-requisite
Create a file Hello.txt in D:> test > directory with the following content.
This is an example.
Example
The following example shows the usage of java.util.zip.ZipEntry.setSize(long size) method.
package com.tutorialspoint; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.Enumeration; import java.util.zip.CRC32; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; public class ZipEntryDemo { private static String SOURCE_FILE = "D:\\test\\Hello.txt"; private static String TARGET_FILE = "D:\\test\\Hello.zip"; public static void main(String[] args) { try { createZipFile(); readZipFile(); } catch(IOException ioe) { System.out.println("IOException : " + ioe); } } private static void createZipFile() throws IOException{ FileOutputStream fout = new FileOutputStream(TARGET_FILE); ZipOutputStream zout = new ZipOutputStream(fout); FileInputStream fin = new FileInputStream(SOURCE_FILE); byte[] buffer = new byte[1024]; fin.read(buffer, 0, buffer.length); ZipEntry zipEntry = new ZipEntry(SOURCE_FILE); CRC32 crc = new CRC32(); zipEntry.setSize((long) buffer.length); crc.reset(); crc.update(buffer); zipEntry.setCrc(crc.getValue()); zout.putNextEntry(zipEntry); zout.write(buffer, 0, buffer.length); zout.closeEntry(); fin.close(); zout.close(); } private static void readZipFile() throws IOException{ final ZipFile file = new ZipFile(TARGET_FILE); System.out.println("Iterating over zip file : " + TARGET_FILE); try { final Enumeration<? extends ZipEntry> entries = file.entries(); while (entries.hasMoreElements()) { final ZipEntry entry = entries.nextElement(); System.out.printf("File: %s Size %d Modified on %TD %n", entry.getName(), entry.getSize(), new Date(entry.getTime())); extractFile(entry, file.getInputStream(entry)); } System.out.printf("Zip file %s extracted successfully.", SOURCE_FILE); } finally { file.close(); } } private static void extractFile(final ZipEntry entry, InputStream is) throws IOException { FileOutputStream fos = null; try { fos = new FileOutputStream(entry.getName()); final byte[] buf = new byte[1024]; int read = 0; int length; while ((length = is.read(buf, 0, buf.length)) >= 0) { fos.write(buf, 0, length); } } catch (IOException ioex) { fos.close(); } } }
Let us compile and run the above program, this will produce the following result −
Iterating over zip file : D:\test\Hello.zip File: D:\test\Hello.txt Size 1024 Modified on 05/20/17 Zip file D:\test\Hello.txt extracted successfully.Print
javazip_zipentry.htm
Advertisements