diff --git a/src/com/flaremicro/util/ZipUtils.java b/src/com/flaremicro/util/ZipUtils.java index ebb8aa7..06ee797 100644 --- a/src/com/flaremicro/util/ZipUtils.java +++ b/src/com/flaremicro/util/ZipUtils.java @@ -1,10 +1,13 @@ package com.flaremicro.util; import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.Enumeration; import java.util.List; import java.util.zip.ZipEntry; @@ -15,21 +18,23 @@ import java.util.zip.ZipOutputStream; public class ZipUtils { public static boolean zipList(File baseDir, List filePaths, File zipFile) { - FileOutputStream fos = null; ZipOutputStream zos = null; FileInputStream fis = null; try { - fos = new FileOutputStream(zipFile); - zos = new ZipOutputStream(fos); + zos = new ZipOutputStream(new FileOutputStream(zipFile)); for (String filePath : filePaths) { File file = new File(baseDir, filePath); if (file.isDirectory() || !file.exists()) + { + System.out.println("Not adding " + filePath + ", does not exist or is directory"); continue; + } fis = new FileInputStream(file); String zipEntryName = filePath.replace("\\", "/"); + System.out.println("Adding " + zipEntryName); ZipEntry zipEntry = new ZipEntry(zipEntryName); zos.putNextEntry(zipEntry); byte[] buffer = new byte[4096]; @@ -137,15 +142,18 @@ public class ZipUtils { System.out.println("File " + newFile + "exists, replacing"); newFile.delete(); } - FileOutputStream outputStream = null; - BufferedInputStream inputStream = null; + OutputStream outputStream = null; + InputStream inputStream = null; try { - outputStream = new FileOutputStream(newFile); + //Should they be buffered? + outputStream = new BufferedOutputStream(new FileOutputStream(newFile)); inputStream = new BufferedInputStream(zip.getInputStream(zipEntry)); - while (inputStream.available() > 0) + byte[] buffer = new byte[4096]; + int read = 0; + while ((read = inputStream.read(buffer)) > -1) { - outputStream.write(inputStream.read()); + outputStream.write(buffer, 0, read); } } finally