KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > servlet > FileZipOutputStream


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 package net.killingar.servlet;
27
28 import org.apache.tools.zip.ZipEntry;
29 import org.apache.tools.zip.ZipOutputStream;
30
31 import java.io.*;
32
33 public class FileZipOutputStream extends ZipOutputStream
34 {
35     private boolean mFinished = false;
36
37     public FileZipOutputStream(OutputStream out)
38     {
39         super(out);
40         setEncoding("Cp850");
41     }
42
43     public FileZipOutputStream(File file) throws java.io.FileNotFoundException JavaDoc
44     {
45         super(new FileOutputStream(file));
46         setEncoding("Cp850");
47     }
48
49     public FileZipOutputStream(String JavaDoc name) throws java.io.FileNotFoundException JavaDoc
50     {
51         super(new FileOutputStream(new File(name)));
52         setEncoding("Cp850");
53     }
54
55     public void putFile(File file, String JavaDoc pathAndName) throws IOException
56     {
57         putNextEntry(new ZipEntry(pathAndName));
58
59         FileInputStream in = new FileInputStream(file);
60         byte buf[] = new byte[524288];
61         int read, totalRead = 0;
62
63         while(true)
64         {
65             read = in.read(buf);
66             if (read == -1)break;
67             write(buf, 0, read);
68             totalRead += read;
69         }
70
71         closeEntry();
72     }
73
74     public void finish() throws IOException
75     {
76         mFinished = true;
77         super.finish();
78     }
79
80     public void finalize() throws Throwable JavaDoc
81     {
82         if (!mFinished)super.finish();
83     }
84 }
Popular Tags