MoparClassic/GameServer/src/org/moparscape/msc/gs/util/DefCompressor.java

59 lines
1.7 KiB
Java

package org.moparscape.msc.gs.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class DefCompressor {
public static void compressFile(File f) throws IOException {
File target = new File(f.toString() + ".gz");
System.out.print("Compressing: " + f.getName() + ".. ");
long initialSize = f.length();
FileInputStream fis = new FileInputStream(f);
GZIPOutputStream out = new GZIPOutputStream(
new FileOutputStream(target));
byte[] buf = new byte[1024];
int read;
while ((read = fis.read(buf)) != -1) {
out.write(buf, 0, read);
}
Logger.println("Done.");
fis.close();
out.close();
long endSize = target.length();
Logger.println("Initial size: " + initialSize + "; Compressed size: "
+ endSize);
}
public static void decompressFile(File f) throws IOException {
File target = new File(f.toString().substring(0,
f.toString().length() - 3));
System.out.print("Decompressing: " + f.getName() + ".. ");
long initialSize = f.length();
GZIPInputStream in = new GZIPInputStream(new FileInputStream(f));
FileOutputStream fos = new FileOutputStream(target);
byte[] buf = new byte[1024];
int read;
while ((read = in.read(buf)) != -1) {
fos.write(buf, 0, read);
}
Logger.println("Done.");
fos.close();
in.close();
long endSize = target.length();
Logger.println("Initial size: " + initialSize + "; Decompressed size: "
+ endSize);
}
public static void main(String[] argv) throws Exception {
if (argv[0].equals("compress"))
compressFile(new File(argv[1]));
if (argv[0].equals("decompress"))
decompressFile(new File(argv[1]));
}
}