Java Tutorial/File/GZIPInputStream

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

Create GZIPInputStream from FileInputStream

   <source lang="java">

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; public class MainClass {

 public static void main(String[] args) {
   for (int i = 0; i < args.length; i++) {
     if (args[i].toLowerCase().endsWith(".gz")) {
       try {
         FileInputStream fin = new FileInputStream(args[i]);
         GZIPInputStream gzin = new GZIPInputStream(fin);
         FileOutputStream fout = new FileOutputStream(args[i].substring(0, args[i].length() - 3));
         for (int c = gzin.read(); c != -1; c = gzin.read()) {
           fout.write(c);
         }
         fout.close();
       } catch (IOException ex) {
         System.err.println(ex);
       }
     } else {
       System.err.println(args[i] + " does not appear to be a gzipped file.");
     }
   }
 }

}</source>





Get Entry from a zip file

   <source lang="java">

import java.io.FileInputStream; import java.util.Date; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class ZipReader {

 public static void main(String[] args) throws Exception {
   ZipInputStream zis = null;
   FileInputStream fis = new FileInputStream(args[0]);
   zis = new ZipInputStream(fis);
   ZipEntry ze;
   while ((ze = zis.getNextEntry()) != null)
     System.out.println(ze.getName() + "  [" + ze.getSize() + "]  ["
         + new Date(ze.getTime()).toString() + "]");
 }

}</source>





Ugzip using GZIPInputStream

   <source lang="java">

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; public class MainClass {

 public static void main(String[] args) {
   for (int i = 0; i < args.length; i++) {
     if (args[i].toLowerCase().endsWith(".gz")) {
       try {
         FileInputStream fin = new FileInputStream(args[i]);
         GZIPInputStream gzin = new GZIPInputStream(fin);
         FileOutputStream fout = new FileOutputStream(args[i].substring(0, args[i].length() - 3));
         for (int c = gzin.read(); c != -1; c = gzin.read()) {
           fout.write(c);
         }
         fout.close();
       } catch (IOException ex) {
         System.err.println(ex);
       }
     } else {
       System.err.println(args[i] + " does not appear to be a gzipped file.");
     }
   }
 }

}</source>





Unzip a file with GZIPInputStream

   <source lang="java">

import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.GZIPInputStream; public class Main {

 public static void main(String[] args) throws Exception {
   int sChunk = 8192;
   String zipname = "a.txt.gz";
   String source = "a.txt";
   FileInputStream in = new FileInputStream(zipname);
   GZIPInputStream zipin = new GZIPInputStream(in);
   byte[] buffer = new byte[sChunk];
   FileOutputStream out = new FileOutputStream(source);
   int length;
   while ((length = zipin.read(buffer, 0, sChunk)) != -1)
     out.write(buffer, 0, length);
   out.close();
   zipin.close();
 }

}</source>