13 Kasım 2017 Pazartesi

ZipOutputStream Sınıfı

constructor
Şöyle yaparız.
FileOutputStream fos =new FileOutputStream(...);
ZipOutputStream  zos = new ZipOutputStream(fos);
Belleğe yazmak için şöyle yaparız.
ZipOutputStream  zos = new ZipOutputStream(new ByteArrayOutputStream());
Bir stream olduğu için şöyle yaparız.
try(ZipOutputStream zip = new ZipOutputStream(new FileOutputStream("dest.zip"))){
  //add file to zip
}
close metodu
Şöyle yaparız.
zos.close();
closeEntry metodu
Şöyle yaparız.
zos.closeEntry();
putNextEntry metodu
ZipEntry nesnesini eklememizi sağlar. Şöyle yaparız.
File file = ...;
ZipEntry zipEntry = new ZipEntry(file.toString());
zos.putNextEntry(zipEntry);
Şöyle yaparız.
FileInputStream in = new FileInputStream(srcFile);
zip.putNextEntry(new ZipEntry(path + "/" + folder.getName()));
while ((len = in.read(buf)) > 0) {
  zip.write(buf, 0, len);
}
write metodu
Şöyle yaparız.
byte[] buf = new byte[1024];
zos.write(buf, 0, len);
Diğer
Lİste olarak verilen dosyaları herhangi bir OutputStream'e ziplemek için şöyle yaparız.
public void compressFileList(List<File> fileList, OutputStream outputStream)
  throws IOException {
  try (ZipOutputStream zipOutputStream =
    new ZipOutputStream(new BufferedOutputStream(outputStream));
    for (File file: fileList) {
      try (FileInputStream fileInputStream = new FileInputStream(file)) {
        ZipEntry zipEntry = new ZipEntry(file.getName());
        zipOutputStream.putNextEntry(zipEntry);
        byte[] tmp = new byte[4*1024];
        int size = 0;
        while((size = fileInputStream.read(tmp)) != -1){
          zipOutputStream.write(tmp, 0, size);
        }
        zipOutputStream.flush();
      } catch (FileNotFoundException e) { // Maybe skip not found files.
        Logger.log(Level.INFO, "File not found {}", file.getPath());
      }
    } //for
  } //try
}
Çağırmak için şöyle yaparız.
compressFileList(fileList, servletRequest.getOutputStream())) {

Hiç yorum yok:

Yorum Gönder