Java/File Input Output/DeflaterOutputStream

Материал из Java эксперт
Перейти к: навигация, поиск

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>