Implementación de la compresión y descompresión del formato de compresión postal a través de la API de Java
La copia del código es la siguiente:
paquete com.hongyuan.test;
import java.io.file;
import java.io.fileInputStream;
import java.io.fileOutputStream;
import java.io.ioException;
import java.io.inputstream;
import java.io.outputstream;
importar java.util.enerumeration;
import java.util.zip.zipentry;
import java.util.zip.zipfile;
import java.util.zip.zipoutputstream;
clase pública Ziptest {
public static void main (string [] args) lanza ioexception {
unzip ("bootstrap.zip");
Zip ("Bootstrap_01.zip", "Bootstrap/CSS/Bootstrap.css", "Bootstrap/CSS/Bootstrap.min.css");
}
public static void unzip (nombre de archivo de cadena) lanza ioexception {
// Objeto de archivo comprimido
ZIPFILE zF = new ZipFile (nombre de archivo);
// transferir entradas de archivo
Enumeración <?
while (items.hasmoreelements ()) {
Zipentry item = items.nextelement ();
String filePath = zf.getName (). Substring (0,
zf.getName (). LastIndexof ("."))
+ File.separator + item.getName ();
Archivo FileDir = nuevo archivo (FilePath.Substring (0,
filePath.lastIndexOf ("/"));
if (! filedir.exists ()) {
FileDir.mkDirs ();
}
// Leer archivo de la transmisión
OutputStream out = new FileOutputStream (FilePath);
InputStream in = zf.getInputStream (elemento);
byte [] temp = new Byte [1024];
int len = 0;
while ((len = in.read (temp))> 0) {
out.write (temp, 0, len);
}
cercar();
out.close ();
}
zf.close ();
}
Public static void zip (nombre de archivo de cadena, cadena ... archivos) lanza IOException {
// Construye la transmisión de salida de archivo comprimido
ZipOutputStream Zos = new ZipoutputStream (nuevo FileOutputStream (nombre de archivo));
para (int i = 0, size = files.length; i <size; i ++) {
// crear una entidad comprimida
Zipentry entry = new ZipEntry (archivos [i] .substring (archivos [i] .lastIndexOf ("/")+1));
Zos.putNextEntry (entrada);
// El contenido del archivo de salida en la transmisión comprimida
InputStream es = nuevo FileInputStream (archivos [i]);
int count = 0;
byte [] buffer = new Byte [1024];
while ((count = is.read (buffer))> = 0) {
Zos.write (buffer, 0, recuento);
}
Zos.flush ();
zoS.CloseEntry ();
is.close ();
}
}
}