1. 程式人生 > >Java中的流與檔案:ZIP文件

Java中的流與檔案:ZIP文件

        Zip文件通常以壓縮格式儲存了一個或多個檔案,每個zip文件都有一個頭,包含諸如每個檔名字和所使用的壓縮方法等資訊。在Java中,可以使用ZipInputStream來讀寫ZIP文件。可以通過getNextEntry方法就可以返回一個描述這些項的ZipEntry型別的物件。ZipInputStream的read方法被修改為碰到當前項的結尾時返回-1,然後你必須呼叫closeEntry來讀入下一項。         ZipInputStream zin = new ZipInputStream(new FileInputStream(zipname));         ZipEntry entry;         while((entry = zip.getNextEntry())!=null){             analyze entry             read the contents of zin             zin.closeEntry();         }         zin.close(); 一、讀取zip檔案         當希望讀入某個zip項的內容時,我們可能並不想使用原生的read方法,通常,我們將使用某個更能勝任的流過濾器的方法。         例如,讀入ZIP檔案內部的一個文字檔案,使用以下迴圈:         Scanner in = new Scanner(zin);         while(in.hasNextLine())             do something with in.nextLine()         注:在讀入單個zip項後,不要關閉zip輸入流,也不要將其傳遞給可能會關閉它的方法。否則,你就不能讀入後續的項。 二、寫出到zip檔案         當希望寫出到zip檔案,可以使用ZipOutputStream,而對於你希望放入到Zip檔案中的每一項,都應該建立一個ZipEntry物件,並將檔名傳遞給ZipEntry的構造器,它將設定諸如檔案日期和解壓縮方法等引數。         例如:         FileOutputStream fout = new FileOutputStream("test.zip");         ZipoutputStream zout = new ZipoutputStream(fout);         for all files{             ZipEntry ze = new ZipEntry(filename);             zout.putNextEntry(ze);             send data to zout             zout.closeEntry();         }         zout.close(); 總結:         ZIP流是一個能夠展示流的抽象化的強大之處的例項。當你讀入以壓縮格式儲存的資料時,不必擔心邊請求邊解壓資料的問題,而且Zip格式的位元組源並非必須是檔案,也可以是來自網路連線的ZIP資料。

相關推薦

Java中的流檔案ZIP

        Zip文件通常以壓縮格式儲存了一個或多個檔案,每個zip文件都有一個頭,包含諸如每個檔名字和所使用的壓縮方法等資訊。在Java中,可以使用ZipInputStream來讀寫ZIP文件。可以通過getNextEntry方法就可以返回一個描述這些項的ZipEnt

java程序壓縮和解壓zip

stat cep 數據壓縮 director 壓縮 public ++ zip tel 需要了解的知識匯總:DeflaterOutputStream :壓縮類的基類。ZipOutputStream :DeflaterOutputStream的一個子類,把數據壓縮成Zip文

原創實現Solaris Windows 間的共享

when reading work existing pan after 重啟 所有者 相同 背景: 現行作業方式無法實現賬號權限的管控,並且每次訪問都需要創建新的連接。 Solaris訪問windows共享目錄通過以下命令 /usr/sfw/bin/smbclie

spark深入配置日誌

oca cut 就會 name ima ast auto agg 日誌 spark2.1與hadoop2.7.3集成,spark on yarn模式下,需要對hadoop的配置文件yarn-site.xml增加內容,如下: <property>

Java 生成ZIP

append try java () span return level ioe eve public static byte[] fileToZip(){ ZipOutputStream append = null;

Java開發小技巧(四)配置敏感信息處理

加載 gem 加密解密 -i false valid ges enc factory 前言 不知道在上一篇文章中你有沒有發現,jdbc.properties中的數據庫密碼配置是這樣寫的: jdbc.password=5EF28C5A9A0CE86C2D231A526ED5

python django學習二 static處理線上部署測試

image 運行 color 文件處理 收集 scrip 線上部署 ges sta static文件相關操作涉及:a. 文件位置與訪問路徑映射b. setting.py與static相關配置 STATIC_URLSTATIC_ROOTSTATICFILES_DIRS

JPA hibernate spring repository pgsql java 工程(二)sql導入數據,測試數據

ber tracking evel 主鍵 出現 一個 OS resources pos 使用jpa保存查詢數據都很方便,除了在代碼中加入數據外,可以使用sql進行導入。目前我只會一種方法,把數據集中在一個sql文件中。 而且數據在導入中常常具有先後關系,需要用串行的方式導

Java獲取內容

PE Coding adl div ecif ror exists print str 文章來源:https://www.cnblogs.com/hello-tl/p/9139353.html import java.io.*; public class FileB

[Windows10]記一次修復註冊表相關血案沒有之關聯的應用來執行該操作。請安裝應用,若已經安裝應用,請在“默認應用設置”頁面中創建關聯。

src 相關 overflow 還在 一次 註冊表 forum sin 嘗試 今天閑得蛋疼清理了一下右鍵菜單,於是在之後某時刻使用Everything的“雙擊路徑列打開目錄”功能時發現異常: [Window Title] Everything

java解壓zip至指定

ava tel exceptio 失敗 ppr mark roc types EDA 前面,筆者講到。如何把文件打包為zip包,那麽反過來怎麽把zip文件包解壓為正常文件呢?把zip包解壓為正常文件包,要比把文件打包為zip簡單一點。因為存在多級文件的壓縮,卻不存在多級文件

解決java 讀取 resources 下面的 json

println 字符 ces 配置文件 trac all .json pro tst 前言:java 讀取 工程下的配置文件,文件類型為 json(*.json),記錄一下始終讀取不到 json 文件的坑。maven項目 直接上工具類代碼 package com.yu

JAVA專案及編寫目的彙總

一、彙總 1 xxx後臺管理系統_開發計劃 2 xxx後臺管理系統_需求規格說明書 3 xxx後臺管理系統_資料庫設計說明書 4 xxx後臺管理系統_管理員使用手冊 5 xxx後臺管理系統_試執行日誌 6 xxx後臺管理系統_內部測試報告 7 xxx後臺管理系統_安裝手冊 8 xxx後臺

Java檔名包含中文的檔案壓縮後名亂碼問題,完美解決方案

以下類從jdk的src.zip裡提取 ZipConstants.java   ZipEntry.java   ZipOutputStream.java  eclipse中新建工程,放入上述三個檔案 1.ZipOutputStream.java檔案改名為CNZipOutpu

iOS開發通過UIWebView載入讀取本地檔案(word

      做過iOS開發的程式猿,對UIWebView都不陌生,因為只要涉及到開發工作,就一定會涉及到這方面的運用。UIWebView是蘋果自帶的框架,也算是蘋果程式內部的瀏覽器,可以瀏覽web網頁,也可以開啟HTML/HTM、PDF、docx、txt等格式的文字檔案,其

Python組織 實踐的不同版本備份為ZIP

eat read names 壓縮 內容 ready python3 組織 pytho 功能:備份文件夾、能將文件的不同版本備份下來,並且每個有不同的名字 #! python3 # backupToZip.py - 備份文件的不同版本到壓縮文件中 import

ElasticStack學習(四)ElasticSearch使用操作

一、文件的CRUD介紹 ElasticSearch中存在五種操作,分別如下: 1、Index 該操作表示:如果文件的ID不存在,則建立新的文件。若有相同的ID,先刪除現有文件,然後再建立新的文件,同時版本會增加。 語法格式如下: PUT index_name/_doc/100 {"field1

深入Node.js的程序子程序到實踐

歡迎關注Github倉庫,這是一個自2018年起持續更新的前端&演算法開源部落格。目前已有node學習、js面試筆記、css3動畫設計、webpack4系列教程、設計模式、劍指offer·js版等多個系列。 倉庫地址:https://github.com/dongyuanxin/blog 程序

Chimm.Excel —— 使用Java 操作 excel 模板檔案生成 excel

# Chimm.Excel —— 設定模板,填充資料,就完事兒了~ ``` _____ _ _ _____ _ / __ \ | (_)

Oracle12c多租戶CDB PDB 參數位置探討、查詢 CDB PDB 不同值的參數

rod 12c spf 怎麽辦 oracl 相同 lte order unp 一、 Oracle12c多租戶CDB 與 PDB 參數文件位置CDB的參數文件依然使用12c以前的SPIFLE,pdb的參數文件不會出現在SPFILE中,而是直接從CDB中繼承,如果PDB中有pr