鴻蒙OS JarURLConnection

2022-06-09 17:17 更新

JarURLConnection

java.lang.Object

|---java.net.URLConnection

|---|---java.net.JarURLConnection

public abstract class JarURLConnection
extends URLConnection

與 Java ARchive (JAR) 文件或 JAR 文件中的條目的 URL 連接。

JAR URL 的語法是:

 jar:<url>!/{entry} 

例如:

jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class

Jar URL 應(yīng)該用于引用 JAR 文件或 JAR 文件中的條目。 上面的示例是一個(gè)引用 JAR 條目的 JAR URL。 如果省略條目名稱,則 URL 引用整個(gè) JAR 文件:jar:http://www.foo.com/bar/baz.jar!/

當(dāng)用戶知道他們創(chuàng)建的 URL 是 JAR URL 并且他們需要特定于 JAR 的功能時(shí),他們應(yīng)該將通用 URLConnection 轉(zhuǎn)換為 JarURLConnection。 例如:

 URL url = new URL("jar:file:/home/duke/duke.jar!/");
 JarURLConnection jarConnection = (JarURLConnection)url.openConnection();
 Manifest manifest = jarConnection.getManifest();

JarURLConnection 實(shí)例只能用于從 JAR 文件中讀取。 無法使用此類獲取 OutputStream 來修改或?qū)懭氲讓?JAR 文件。

例如:

一個(gè) Jar 條目

jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class

一個(gè) Jar 文件

jar:http://www.foo.com/bar/baz.jar!/

一個(gè) Jar 目錄

jar:http://www.foo.com/bar/baz.jar!/COM/foo/

!/ 被稱為分隔符。

通過 new URL(context, spec) 構(gòu)造 JAR url 時(shí),適用以下規(guī)則:

  • 如果沒有上下文 URL 并且傳遞給 URL 構(gòu)造函數(shù)的規(guī)范不包含分隔符,則認(rèn)為 URL 引用了 JarFile。

  • 如果存在上下文 URL,則假定上下文 URL 引用 JAR 文件或 Jar 目錄。

  • 如果規(guī)范以“/”開頭,則忽略 Jar 目錄,并認(rèn)為規(guī)范位于 Jar 文件的根目錄。

例如:

上下文:jar:http://www.foo.com/bar/jar.jar!/, spec:baz/entry.txt

url:jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt

上下文:jar:http://www.foo.com/bar/jar.jar!/baz, spec:entry.txt

url:jar:http://www.foo.com/bar/jar.jar!/baz/entry.txt

上下文:jar:http://www.foo.com/bar/jar.jar!/baz, spec:/entry.txt

url:jar:http://www.foo.com/bar/jar.jar!/entry.txt

字段摘要

修飾符和類型 字段 描述
protected URLConnection jarFileURLConnection 與 JAR 文件 URL 的連接(如果已啟動(dòng)連接)。
從類 java.net.URLConnection 繼承的字段
allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches

構(gòu)造函數(shù)摘要

修飾符 構(gòu)造函數(shù) 描述
protected JarURLConnection(URL url) 為指定的 URL 創(chuàng)建新的 JarURLConnection。

方法總結(jié)

修飾符和類型 方法 描述
Attributes getAttributes() 如果該連接的 URL 指向 JAR 文件條目,則返回該連接的 Attributes 對象,否則返回 null。
Certificate[] getCertificates() 如果此連接的 URL 指向 JAR 文件條目,則返回此連接的證書對象,否則返回 null。
String getEntryName() 返回此連接的條目名稱。
JarEntry getJarEntry() 返回此連接的 JAR 條目對象(如果有)。
abstract JarFile getJarFile() 返回此連接的 JAR 文件。
URL getJarFileURL() 返回此連接的 Jar 文件的 URL。
Attributes getMainAttributes() 返回此連接的 JAR 文件的主要屬性。
Manifest getManifest() 返回此連接的清單,如果沒有則返回 null。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
從類 java.net.URLConnection 繼承的方法
addRequestProperty, connect, getAllowUserInteraction, getConnectTimeout, getContent, getContent, getContentEncoding, getContentLength, getContentLengthLong, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderField, getHeaderFieldDate, getHeaderFieldInt, getHeaderFieldKey, getHeaderFieldLong, getHeaderFields, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getPermission, getReadTimeout, getRequestProperties, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setConnectTimeout, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setReadTimeout, setRequestProperty, setUseCaches, toString

字段詳細(xì)信息

jarFileURLConnection

protected URLConnection jarFileURLConnection

與 JAR 文件 URL 的連接(如果已啟動(dòng)連接)。 這應(yīng)該由連接設(shè)置。

構(gòu)造函數(shù)詳細(xì)信息

JarURLConnection

protected JarURLConnection(URL url) throws MalformedURLException

為指定的 URL 創(chuàng)建新的 JarURLConnection。

參數(shù):

參數(shù)名稱 參數(shù)描述
url 網(wǎng)址

Throws:

Throw名稱 Throw描述
MalformedURLException 如果在規(guī)范字符串中找不到合法協(xié)議或無法解析字符串。

方法詳情

getJarFileURL

public URL getJarFileURL()

返回此連接的 Jar 文件的 URL。

返回:

此連接的 Jar 文件的 URL。

getEntryName

public String getEntryName()

返回此連接的條目名稱。 如果與此連接對應(yīng)的 JAR 文件 URL 指向 JAR 文件而不是 JAR 文件條目,則此方法返回 null。

返回:

此連接的條目名稱(如果有)。

getJarFile

public abstract JarFile getJarFile() throws IOException

返回此連接的 JAR 文件。

返回:

此連接的 JAR 文件。 如果連接是到 JAR 文件條目的連接,則返回 JAR 文件對象

Throws:

Throw名稱 Throw描述
IOException 如果在嘗試連接到此連接的 JAR 文件時(shí)發(fā)生 IOException。

getManifest

public Manifest getManifest() throws IOException

返回此連接的清單,如果沒有則返回 null。

返回:

與此連接的 JAR 文件對象對應(yīng)的清單對象。

Throws:

Throw名稱 Throw描述
IOException 如果獲取此連接的 JAR 文件會(huì)導(dǎo)致拋出 IOException。

getJarEntry

public JarEntry getJarEntry() throws IOException

返回此連接的 JAR 條目對象(如果有)。 如果與此連接對應(yīng)的 JAR 文件 URL 指向 JAR 文件而不是 JAR 文件條目,則此方法返回 null。

返回:

此連接的 JAR 條目對象,如果此連接的 JAR URL 指向 JAR 文件,則返回 null。

Throws:

Throw名稱 Throw描述
IOException 如果獲取此連接的 JAR 文件會(huì)導(dǎo)致拋出 IOException。

getAttributes

public Attributes getAttributes() throws IOException

如果該連接的 URL 指向 JAR 文件條目,則返回該連接的 Attributes 對象,否則返回 null。

返回:

如果此連接的 URL 指向 JAR 文件條目,則為該連接的 Attributes 對象,否則為 null。

Throws:

Throw名稱 Throw描述
IOException 如果獲取 JAR 條目導(dǎo)致拋出 IOException。

getMainAttributes

public Attributes getMainAttributes() throws IOException

返回此連接的 JAR 文件的主要屬性。

返回:

此連接的 JAR 文件的主要屬性。

Throws:

Throw名稱 Throw描述
IOException 如果獲取清單導(dǎo)致拋出 IOException。

getCertificates

public Certificate[] getCertificates() throws IOException

如果此連接的 URL 指向 JAR 文件條目,則返回此連接的證書對象,否則返回 null。 只有在通過從輸入流中讀取直到到達(dá)流的末尾來完全驗(yàn)證連接后,才能調(diào)用此方法。 否則,此方法將返回 null

返回:

如果此連接的 URL 指向 JAR 文件條目,則為該連接的 Certificate 對象,否則為 null。

Throws:

Throw名稱 Throw描述
IOException 如果獲取 JAR 條目導(dǎo)致拋出 IOException。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號