qqjianyue代碼工

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

          java 壓縮IO類

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

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

          ZipOutputStreamwrite數(shù)據(jù)到zip文件的對象

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

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

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

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


          示例代碼

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

          GZIP格式,只提供GZIPInputStream和GZIPOutputStream類,因為其作用是單純的壓縮與解壓,不維護文件結(jié)構(gòu)。多數(shù)用于基于流的數(shù)據(jù)傳送過程實現(xiàn)數(shù)據(jù)壓縮。用法就如Bufer Stream一樣,是stream之間的又一個過濾類,只是Buffer提供緩沖,而GZIP提供壓縮。
          例如需要網(wǎng)絡(luò)傳送壓縮就可以這樣做:
          客戶端:
          Socket socket = new Socket(服務(wù)器地址字符串, 服務(wù)器端口);
          BufferOutputStream out = new BufferOutPutStream(new GZIPOutputStream(socket.getOutputStream()));
          然后就可以操作數(shù)據(jù)輸出了
          服務(wù)器端:
          ServerSocket sSocket =   new ServerSocket(服務(wù)器端口);
          Socket socket = sSocket.accept();
          BufferInputStream in = new BufferInputStream(new GZIPInputStream(socket.getInputStream()));
          然后就可以讀入數(shù)據(jù)了。
          明顯網(wǎng)絡(luò)數(shù)據(jù)傳送就加了一個壓縮,性能就可以提高了。
          主站蜘蛛池模板: 太谷县| 比如县| 瓮安县| 桃源县| 松江区| 延安市| 北安市| 利川市| 门源| 梨树县| 汕头市| 都江堰市| 木里| 锡林浩特市| 庆城县| 梓潼县| 尖扎县| 独山县| 通山县| 渑池县| 九江市| 玛纳斯县| 苍山县| 嘉定区| 马边| 荥阳市| 安新县| 广元市| 双鸭山市| 达拉特旗| 大渡口区| 海林市| 佛坪县| 衢州市| 普安县| 乌恰县| 拜城县| 石河子市| 包头市| 隆尧县| 榆社县|