diff options
author | Stiver <stiver.mail@gmail.com> | 2014-03-04 15:13:11 +0100 |
---|---|---|
committer | Stiver <stiver.mail@gmail.com> | 2014-03-04 15:13:11 +0100 |
commit | e2d0f5d9c38561d67f23754c00addb4a3547efb2 (patch) | |
tree | 1832f16037c086b48266b8566aecc61f45f4e5f1 /src/test/util/ZipStripper.java | |
download | fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.gz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.lz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.tar.xz fernflower-e2d0f5d9c38561d67f23754c00addb4a3547efb2.zip |
initial commit
Diffstat (limited to 'src/test/util/ZipStripper.java')
-rw-r--r-- | src/test/util/ZipStripper.java | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/test/util/ZipStripper.java b/src/test/util/ZipStripper.java new file mode 100644 index 0000000..2eeb2c0 --- /dev/null +++ b/src/test/util/ZipStripper.java @@ -0,0 +1,71 @@ +package test.util; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.Enumeration; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.zip.ZipOutputStream; + +public class ZipStripper { + + public static void main(String[] args) { + + try { + String sourceFileName = args[0]; + File sourceFile = new File(sourceFileName); + + File tempFile = new File(sourceFile.getParentFile(), "tmp31415926535.zip"); + tempFile.createNewFile(); + + ZipOutputStream outTemp = new ZipOutputStream(new FileOutputStream(tempFile)); + + ZipFile archive = new ZipFile(sourceFile); + + Enumeration<? extends ZipEntry> en = archive.entries(); + while(en.hasMoreElements()) { + ZipEntry entr = en.nextElement(); + + outTemp.putNextEntry(new ZipEntry(entr.getName())); + + if(!entr.isDirectory()) { + InputStream in = archive.getInputStream(entr); + + copyInputStream(in, outTemp); + in.close(); + } + } + + outTemp.flush(); + outTemp.close(); + + archive.close(); + + String destFileName = args[1]; + + if(sourceFileName.equals(destFileName)) { + sourceFile.delete(); + } + + tempFile.renameTo(new File(destFileName)); + + } catch(Exception ex) { + ex.printStackTrace(); + } + + } + + public static void copyInputStream(InputStream in, OutputStream out)throws IOException { + + byte[] buffer = new byte[1024]; + int len; + + while((len = in.read(buffer)) >= 0) { + out.write(buffer, 0, len); + } + } + +} |