qqjianyue代碼工

          砌java代碼
          posts - 62, comments - 9, trackbacks - 0, articles - 10
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2008年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          相冊

          qqjianyue

          搜索

          •  

          最新評論

          java 壓縮IO類

          Posted on 2008-10-07 14:15 Qzi 閱讀(1735) 評論(0)  編輯  收藏 所屬分類: java foundation
          ZIP壓縮IO涉及類(包括操作文件夾壓縮)

          ZipEntry標識zip文件中單個文件的入口,它也支持路徑加文件名,所以通過配置它,可以建立目錄層次的zip文件(見下例子)

          ZipOutputStreamwrite數據到zip文件的對象

          ZipInputStream,從zip文件中read數據的對象,其實基本上這個沒有作用

          ZipFile,獲取zip文件里面單個文件入口,getInputStream()等信息的對象,初始化ZipFile zf = new ZipFile(zip壓縮文件的File對象);

                     Enumeration entries = =zf.entries()可以獲得所有的zip文件里面的文件入口。

          原理就是:entry指定單個文件相對zip壓縮文件內部根目錄的位置,Stream操作輸出輸入,ZipFile代表的就是整個zip文件


          示例代碼

          JAR壓縮類與ZIP是幾乎一模一樣對應的分別為:JarEntry JarFile JarInputStream JarOutputStream

          GZIP格式,只提供GZIPInputStream和GZIPOutputStream類,因為其作用是單純的壓縮與解壓,不維護文件結構。多數用于基于流的數據傳送過程實現數據壓縮。用法就如Bufer Stream一樣,是stream之間的又一個過濾類,只是Buffer提供緩沖,而GZIP提供壓縮。
          例如需要網絡傳送壓縮就可以這樣做:
          客戶端:
          Socket socket = new Socket(服務器地址字符串, 服務器端口);
          BufferOutputStream out = new BufferOutPutStream(new GZIPOutputStream(socket.getOutputStream()));
          然后就可以操作數據輸出了
          服務器端:
          ServerSocket sSocket =   new ServerSocket(服務器端口);
          Socket socket = sSocket.accept();
          BufferInputStream in = new BufferInputStream(new GZIPInputStream(socket.getInputStream()));
          然后就可以讀入數據了。
          明顯網絡數據傳送就加了一個壓縮,性能就可以提高了。
          主站蜘蛛池模板: 姚安县| 巴青县| 陆河县| 澄江县| 鸡东县| 台南市| 宣武区| 宜春市| 亳州市| 澄江县| 彰武县| 错那县| 巴楚县| 宝清县| 新河县| 遂川县| 通山县| 哈尔滨市| 济南市| 恩平市| 会东县| 噶尔县| 中西区| 武威市| 延长县| 揭西县| 宜兴市| 泽库县| 龙山县| 乐清市| 通江县| 灵武市| 集贤县| 万盛区| 汪清县| 怀化市| 乐业县| 静安区| 玉环县| 博白县| 衡阳市|