Exemple de méthode java.util.zip.ZipOutputStream.write ()
La description
le java.util.zip.ZipOutputStream.write(byte[] buf, int off, int len)La méthode écrit un tableau d'octets dans les données d'entrée ZIP actuelles. Cette méthode bloquera jusqu'à ce que tous les octets soient écrits.
Déclaration
Voici la déclaration pour java.util.zip.ZipOutputStream.write(byte[] buf, int off, int len) méthode.
public void write(byte[] buf, int off, int len)
throws IOException
Paramètres
buf - le tampon dans lequel les données à écrire.
off - le décalage de départ dans le tableau de destination b.
len - le nombre d'octets à écrire.
Exceptions
ZipException - si une erreur de fichier ZIP s'est produite.
IOException - si une erreur d'E / S s'est produite.
Prérequis
Créez un fichier Hello.txt dans D:> test > répertoire avec le contenu suivant.
This is an example.
Exemple
L'exemple suivant montre l'utilisation de la méthode java.util.zip.ZipOutputStream.write (byte [] buf, int off, int len).
package com.tutorialspoint;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class ZipOutputStreamDemo {
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);
CheckedOutputStream checksum = new CheckedOutputStream(fout, new Adler32());
ZipOutputStream zout = new ZipOutputStream(checksum);
FileInputStream fin = new FileInputStream(SOURCE_FILE);
ZipEntry zipEntry = new ZipEntry(SOURCE_FILE);
zout.putNextEntry(zipEntry);
int length;
byte[] buffer = new byte[1024];
while((length = fin.read(buffer)) > 0) {
zout.write(buffer, 0, length);
}
zout.closeEntry();
zout.finish();
fin.close();
zout.close();
}
private static void readZipFile() throws IOException{
ZipInputStream zin = new ZipInputStream(new FileInputStream(TARGET_FILE));
ZipEntry entry;
while((entry = zin.getNextEntry())!=null){
System.out.printf("File: %s Modified on %TD %n",
entry.getName(), new Date(entry.getTime()));
extractFile(entry, zin);
System.out.printf("Zip file %s extracted successfully.", SOURCE_FILE);
zin.closeEntry();
}
zin.close();
}
private static void extractFile(final ZipEntry entry, ZipInputStream is)
throws IOException {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(entry.getName());
while(is.available() != 0){
fos.write(is.read());
}
} catch (IOException ioex) {
fos.close();
}
}
}
Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -
Zip File: D:\test\Hello.zip, Contains 1 file(s).
File: D:\test\Hello.txt Size 1026 Modified on 05/22/17
Zip file D:\test\Hello.txt extracted successfully.
Impression