1 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 44 { 45 super(new FileOutputStream(file)); 46 setEncoding("Cp850"); 47 } 48 49 public FileZipOutputStream(String name) throws java.io.FileNotFoundException 50 { 51 super(new FileOutputStream(new File(name))); 52 setEncoding("Cp850"); 53 } 54 55 public void putFile(File file, String 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 81 { 82 if (!mFinished)super.finish(); 83 } 84 } | Popular Tags |