Java/File Input Output/DeflaterOutputStream
Create a compressed data file by using a DeflaterOutputStream and then read that data through an InflaterInputStream.
<source lang="java">
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.DeflaterOutputStream; import java.util.zip.InflaterInputStream; public class Main {
public static void main(String[] argv) throws Exception { double data[] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 }; DataOutputStream fout = new DataOutputStream(new DeflaterOutputStream(new FileOutputStream( "data.dat"))); fout.writeInt(data.length); for (double d : data) fout.writeDouble(d); DataInputStream fin = new DataInputStream(new InflaterInputStream(new FileInputStream( "data.dat"))); int num = fin.readInt(); double avg = 0.0; double d; for (int i = 0; i < num; i++) { d = fin.readDouble(); avg += d; System.out.print(d + " "); } fin.close(); fout.close(); }
}
</source>
Use DeflaterOutputStream to zip
<source lang="java">
import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.DeflaterOutputStream; public class FileDeflater {
public static void main(String[] args) throws Exception { FileInputStream fin = new FileInputStream("a.dat"); FileOutputStream fout = new FileOutputStream("b.dat"); DeflaterOutputStream dos = new DeflaterOutputStream(fout); for (int c = fin.read(); c != -1; c = fin.read()) { dos.write(c); } dos.close(); fin.close(); }
}
</source>