1
22
23 package com.liferay.portal.kernel.zip;
24
25 import com.liferay.portal.kernel.util.ByteArrayMaker;
26
27 import java.io.BufferedInputStream;
28 import java.io.BufferedOutputStream;
29 import java.io.ByteArrayInputStream;
30 import java.io.IOException;
31 import java.io.Serializable;
32
33 import java.util.zip.ZipEntry;
34 import java.util.zip.ZipOutputStream;
35
36
42 public class ZipWriter implements Serializable {
43
44 public ZipWriter() {
45 _bam = new ByteArrayMaker();
46 _zos = new ZipOutputStream(new BufferedOutputStream(_bam));
47 }
48
49 public void addEntry(String name, StringBuilder sb) throws IOException {
50 addEntry(name, sb.toString());
51 }
52
53 public void addEntry(String name, String s) throws IOException {
54 addEntry(name, s.getBytes());
55 }
56
57 public void addEntry(String name, byte[] bytes) throws IOException {
58 ZipEntry entry = new ZipEntry(name);
59
60 _zos.putNextEntry(entry);
61
62 BufferedInputStream bis = new BufferedInputStream(
63 new ByteArrayInputStream(bytes), _BUFFER);
64
65 int count;
66
67 while ((count = bis.read(_data, 0, _BUFFER)) != -1) {
68 _zos.write(_data, 0, count);
69 }
70
71 bis.close();
72 }
73
74 public byte[] finish() throws IOException {
75 _zos.close();
76
77 return _bam.toByteArray();
78 }
79
80 private static final int _BUFFER = 2048;
81
82 private ByteArrayMaker _bam;
83 private ZipOutputStream _zos;
84 private byte[] _data = new byte[_BUFFER];
85
86 }