Java I/O全文摘要(十一)過濾流,JAR歸檔

1 JAR

jar文件是Java標準的歸檔和發佈格式。

它用於applets,servlets,標準之外的GUI應用程序,庫字節碼文件,Java豆和其他。

用JAR來放置配置數據,參數,檢索表,本地化的字符串和其他非代碼資源都是非常合適的。

此外,將這些資源儲存在JAR中你將無需擔心:

(1)文件被移動

(2)本地文件系統的細節。

還能提高性能。例如Java-web上的獨立運行的應用程序,內容被壓縮,下載更統一。

JAR的內部實現是ZIP。只是包含了額外的字段,這些字段將被ZIP解壓工具看做文件和目錄一樣的東西,而JAR工具則能識別他們。

爲了使得JAR中的文件對於 Java有效,需要配置classpath。JAR文件將被當做一個字典對待。放置在jre/lib/ext或jre/lib/endorsed將被自動load.


2 元信息:配置文件和簽名

jar 與zip差別不大,但是它必定包含了一個MANIFEST文件。

MANIFEST文件包含下面這一行:

Manifest-Version: 1.0

其他內容:樣本

Name: com/elharo/awt/Filmstrip.class
Java-Bean: true
Last-modified: 09-07-2005
Depends-On: com/elharo/io/StreamCopier.class
Brad: Majors
Digest-Algorithms: MD5
MD5-Digest: XD4578YEEIK9MGX54RFGT7UJUI9810


3 JAR工具

jdk提供了簡單的命令行工具JAR


4 java.util.jar包



5 JarFile 和 JarEntry

JarFile和ZipFile很相似,但是多了兩個對於Jar纔有的特性方法

public JarEntry getJarEntry(String name)
public Manifest getManifest( ) throws IOException



JarEntry對比ZipEntry也多了兩個方法:

public Attributes getAttributes( ) throws IOException
public Certificate[] getCertificates( )

Attributes

Attributes 是一個特殊類型的Map


7 Manifest

可將Manifest看做一個額外的字段


8 JarInputStream 和 JarOutputStream

輸入流可以讀取Manifest,輸出流可以設置Manifest.


9 Pack200

Java5 引入的新的格式,用於壓縮jar文件。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章