亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JAVA下的GZIP應用

2019-11-18 13:26:23
字體:
來源:轉載
供稿:網友

  作者: 陳慧民
  gzip是目前廣泛應用的一種壓縮方式,它具有很高的壓縮比和壓縮效率.在sun公司發布的jdk中包含了java.util.zip包,對gzip提供了直接支持.使用java語言可以很方便的實現gzip壓縮和解壓縮.以下是一個壓縮和解壓縮的最簡程序.
  (壓縮:gzip.java)
  import java.io.*;
  import java.util.zip.*;
  public class gzip
  {
  public static void main(String[] args)
  {
  if (args.length !=2)
  {
  System.out.  System.exit(1);
  }
  try
  {
  //打開需壓縮文件作為文件輸入流
  FileInputStream fin=new FileInputStream(args[0]);
  //建立壓縮文件輸出流
  FileOutputStream fout=new FileOutputStream(args[1]);
  //建立gzip壓縮輸出流
  GZIPOutputStream gzout=new GZIPOutputStream(fout);
  byte[] buf=new byte[1024];//設定讀入緩沖區尺寸
  int num;
  while ((num=fin.read(buf)) != -1)
  {
  gzout.write(buf,0,num);
  }
  gzout.close();//!!!關閉流,必須關閉所有輸入輸出流.保證輸入輸出完整和釋放系統資源.
  fout.close();
  fin.close();
  }catch(IOException e)
  {
  System.out.println(e);
  }
  }
  }
  (解壓縮:unzip.java)
  import java.io.*;
  import java.util.zip.*;
  public class ungzip
  {
  public static void main(String[] args)
  {
  if (args.length !=2)
  {
  System.out.println("Usage:java ungzip ");
  System.exit(1);
  }
  try
  {
  //建立gzip壓縮文件輸入流
  FileInputStream fin=new FileInputStream(args[0]);
  //建立gzip解壓工作流
  GZIPInputStream gzin=new GZIPInputStream(fin);
  //建立解壓文件輸出流
  FileOutputStream fout=new FileOutputStream(args[1]);
  byte[] buf=new byte[1024];
  int num;
  while ((num=gzin.read(buf,0,buf.length)) != -1)
  {
  fout.write(buf,0,num);
  }
  gzin.close();
  fout.close();
  fin.close();
  }catch(IOException e)
  {
  System.out.println(e);
  }
  }
  }
  非面向對象語言要實現保存工作數據(如一個繪圖程序保存一幅畫面的定義),往往需要一個程序數據格式轉換為外部文件格式存儲,工作時再反向轉換的過程.實現比較麻煩,編程不透明.而java語言是一種面向對象的語言,使用它的對象序列化特性,就可實現將工作對象(畫面定義對象數據)直接寫入硬盤,需要時再直接再讀入內存,不需任何額外操作.實現非常 方便.但由于寫出對象為java類格式,因此數據冗余度較大.當數據量很大時,往往造成存儲文件很大.過多的磁盤操作也導致數據讀入花費了更多時間,占有了大量內存.采用gzip壓縮存儲對象是解決此類問題的有效手段.(在本人實現的一個監控系 統中,調入一幅測試畫面(10萬個
組件,壓縮前7M,壓縮后600K),壓縮前對如畫面后內存為26M,壓縮后讀入內存為12M,讀入速度也大幅提高.效果十分明顯).
  java程序開發網絡應用程序是它的最大優勢,但在某些低速網絡情況下(Internet、撥號網絡).網絡往往造成傳輸瓶頸, 影響應用效果,對于實時性要求高的應用影響更大.采用壓縮可以有效改善通信效果.
  可見,在java下的對象gzip壓縮有著廣泛的應用價值.以下是一個簡單事例程序.
  (串行化的數據對象文件:Data.java)
  import java.io.*;
  import java.util.zip.*;
  public class Data implements Serializable//繼續串行序列化接口
  {
  String name="匹配";
  int age=123;
  float height=1.902f;
  }
  (對象壓縮解壓縮類文件:compressObject.java)
  import java.util.zip.*;
  import java.io.*;
  public final class compressObject
  {
  //將Data類型數據對象序列化對象壓縮,返回字節數組,壓縮后的對象數組可寫入文件保存或用于網絡傳輸
  public static byte[] writeCompressObject(Data object_)
  {
  byte[] data_=null;
  try
  {
  //建立字節數組輸出流
  ByteArrayOutputStream o = new ByteArrayOutputStream();
  //建立gzip壓縮輸出流
  GZIPOutputStream gzout=new GZIPOutputStream(o);
  //建立對象序列化輸出流
  ObjectOutputStream out = new ObjectOutputStream(gzout);
  out.writeObject(object_);
  out.flush();
  out.close();
  gzout.close();
  //返回壓縮字節流
  data_=o.toByteArray();
  o.close();
  }catch(IOException e)
  {
  System.out.println(e);
  }
  return(data_);
  }
  //將壓縮字節數組還原為Data類型數據對象
  public static Data readCompressObject(byte[] data_)
  {
  Data object_=null;
  try
  {
  //建立字節數組輸入流
  ByteArrayInputStream i = new ByteArrayInputStream(data_);
  //建立gzip解壓輸入流
  GZIPInputStream gzin=new GZIPInputStream(i);
  //建立對象序列化輸入流
  ObjectInputStream in = new ObjectInputStream(gzin);
  //按制定類型還原對象
  object_=(Data)in.readObject();
  i.close();
  gzin.close();
  in.close();
  }catch(ClassNotFoundException e)
  {
  System.out.println(e);
  }catch(IOException e)
  {
  System.out.println(e);
  }
  return(object_);
  }
  }
  (主程序:test.java)
  import java.io.*;
  import java.util.zip.*;
  public class test
  {
  public static void main(String[] args)
  {
  Data testData_=new Data();
  //未壓縮數據對象內容
  System.out.println("name="+testData_.name+" age="+testData_.age+" height="+testData_.height);
  //壓縮
  byte[] i_=compressObject.writeCompressObject(testData_);
  /*
  可執行保存或網絡傳輸,需要時還原或在對端還原
  */
  //解壓縮
  Data o_=compressObject.readCompressObject(i_);
  //解壓縮后對象內容
  System.out.println("name="+o_.name+" age="+o_.age+" height="+o_.height);
  }
  }
  以上只是java下應用gzip壓縮的一個簡單例子,請大家舉一反三在自己的開發中使用.由于本人水平所限,不當之處
  敬請指正.來信請寄chen@mail.dtbay.com.
  (程序全部經過測試, 編譯環境:pentiumII 233,mem 160M,win98/linux,jdk1.2-jdk1.4)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品偷伦视频免费观看国产| 亚洲奶大毛多的老太婆| 久久久国产精品亚洲一区| 日韩精品中文字幕有码专区| 亚洲丝袜一区在线| 国产日韩在线一区| 欧美午夜激情小视频| 亚洲欧美日韩天堂一区二区| 亚洲欧美精品中文字幕在线| 亚洲国产天堂久久国产91| 欧美精品国产精品日韩精品| 疯狂做受xxxx高潮欧美日本| 日韩在线免费视频观看| 97国产成人精品视频| 神马久久桃色视频| 日韩av在线免费播放| 亚洲视频日韩精品| 欧美性猛交xxxx免费看| 成人动漫网站在线观看| 欧美黄色小视频| 久久精品99久久香蕉国产色戒| 日本视频久久久| 亚洲最大福利网| 国产精品自拍网| 色婷婷综合久久久久| 国产精品久久久久999| 亚洲视频在线观看| 欧美人成在线视频| 在线看国产精品| 国产精品久久久久久久久免费看| 久久久久久久成人| 俺去了亚洲欧美日韩| 欧美一级黑人aaaaaaa做受| 精品久久久久久中文字幕一区奶水| 亚洲人成在线观看网站高清| 欧美日韩一区二区免费视频| 久久国产精品免费视频| 亚洲视频自拍偷拍| 97香蕉超级碰碰久久免费软件| 亚洲精品一区二区网址| 黑人巨大精品欧美一区二区| 2019中文字幕在线| 国产精品免费久久久久影院| 国产91ⅴ在线精品免费观看| 亚洲精品大尺度| 欧美重口另类videos人妖| 国产精品三级网站| 亚洲www在线观看| 国产精品中文字幕在线| 国产亚洲美女久久| 亚洲一区中文字幕在线观看| 色综合天天综合网国产成人网| 亚洲高清不卡av| 日韩**中文字幕毛片| 中文字幕不卡在线视频极品| 欧美日韩国产中字| 神马久久久久久| 日本欧美中文字幕| 欧美激情中文字幕在线| 欧美成人午夜影院| 亚洲tv在线观看| 日韩电影大全免费观看2023年上| 日韩精品免费看| 国产精品嫩草影院久久久| 国产视频久久久| 色综合男人天堂| 色婷婷av一区二区三区在线观看| 中文精品99久久国产香蕉| 中文字幕亚洲欧美日韩在线不卡| 亚洲xxxx妇黄裸体| 亚洲免费一在线| 国产精品三级网站| 亚洲毛茸茸少妇高潮呻吟| 国产亚洲精品久久| 国产精品久久久亚洲| 国内外成人免费激情在线视频网站| 欧美老少做受xxxx高潮| 国产精品美女在线观看| 久久99青青精品免费观看| 国产精品第一区| 午夜免费在线观看精品视频| 欧美中文字幕在线视频| 亚洲黄页网在线观看| 欧美性xxxxx极品娇小| 欧美一区二粉嫩精品国产一线天| 91欧美激情另类亚洲| 91av在线影院| 亚洲欧美日韩在线高清直播| 久久久久久久久久久久av| 一区二区成人精品| 精品久久久久久国产| 亚洲a中文字幕| 国产精品视频免费在线| 成人在线观看视频网站| xvideos成人免费中文版| 精品一区二区三区电影| 亚洲最新av在线| 亚洲欧洲激情在线| 高清欧美性猛交| 欧美亚洲一级片| 欧美成在线观看| 国自产精品手机在线观看视频| 精品久久久在线观看| 久久69精品久久久久久国产越南| 久久久av一区| 久久99久久亚洲国产| 欧美裸身视频免费观看| 国产中文字幕日韩| 亚洲精品中文字幕有码专区| 在线观看国产精品日韩av| 亚洲午夜av久久乱码| 国产日韩欧美电影在线观看| 国产精品成人播放| 亚洲国产精品99久久| 日韩中文字幕免费看| 91精品国产高清久久久久久| 亚洲一区二区三区四区视频| 一级做a爰片久久毛片美女图片| 国产在线观看一区二区三区| 日韩成人在线视频网站| 日本一区二区三区在线播放| 国产精品成人av在线| 亚洲一区二区中文字幕| 91久久久久久| 国产成人一区二区三区电影| 欧美超级乱淫片喷水| 另类美女黄大片| 亚洲精品www| 久久夜精品香蕉| 日韩av免费在线| 日本精品在线视频| 日韩中文在线中文网在线观看| 国产一区二区激情| 久久久久久国产精品美女| 国产精品国产三级国产aⅴ9色| 欧美日韩午夜激情| 国产精品成av人在线视午夜片| 成人精品久久一区二区三区| 欧美性猛交xxxxx免费看| 这里只有精品在线播放| 欧美激情2020午夜免费观看| 久久成人一区二区| 欧美性xxxxxx| 欧美午夜激情在线| 欧美亚洲日本黄色| 亚洲欧美日韩爽爽影院| 亚洲精品一二区| 超在线视频97| 日韩天堂在线视频| 国产中文字幕亚洲| 欧美成人精品在线视频| 蜜臀久久99精品久久久久久宅男| 欧美激情手机在线视频| 亚洲字幕一区二区| 国产成人精品av| 亚洲精品日韩激情在线电影| 欧美最猛黑人xxxx黑人猛叫黄| 中文字幕日韩在线播放| 国内精品一区二区三区四区| 俺也去精品视频在线观看| 亚洲九九九在线观看| 亚洲男人第一网站| 2019亚洲日韩新视频| 全球成人中文在线|