Objectcom.nttdocomo.util.JarInflater
Jar 形式のファイルイメージからそのエントリを伸長して取り出すためのクラスです。
JarInflater オブジェクトを得るためには、
Jar 形式のファイルイメージを保持する InputStream
またはバイト配列を指定して、コンストラクタを呼び出します。
エントリ(圧縮または無圧縮で格納されたされたファイル)
の内容を伸長して取得するためには、そのエントリ名を指定して
getInputStream(String) メソッドを呼び出します。
なお、
コンストラクタの引数に指定するストリームやバイト配列からは 1 つの JAR
ファイルが過不足なく読み出せる必要があります。
一部が欠落していたり、
また末尾などに余分なデータが付加されて読み出されるような場合は、
フォーマット違反とみなされ例外が発生することがあります。
特に、
スクラッチパッドに結び付けられたストリームをコンストラクタに指定する場合、
そのスクラッチパッドをオープンする際には URL に pos オプションと length
オプションを付加し、適切なデータが読み出せるようにしなければなりません。
Jarファイルが署名されていても、署名は確認されません。
| コンストラクタの概要 | |
JarInflater(byte[] data)
バイト配列から新しいJarInflaterを生成します。 |
|
JarInflater(java.io.InputStream in)
入力ストリームから新しいJarInflaterを生成します。 |
|
| メソッドの概要 | |
void |
close()
このJarInflaterをクローズします。 |
java.io.InputStream |
getInputStream(String name)
エントリ名を指定して、エントリを読むための入力ストリームを返します。 |
long |
getSize(String name)
エントリ名を指定して、エントリ伸長時のサイズを返します。 |
| クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public JarInflater(java.io.InputStream in)
throws JarFormatException,
java.io.IOException
入力ストリームから新しいJarInflaterを生成します。 指定された入力ストリームからは、 有効なJar形式のファイルイメージが取得できなければなりません。
入力ストリームからは、 有効なJar形式のファイルイメージが1つ分読み込まれます。 すなわち、 有効なJar形式のファイルイメージが取得できる入力ストリームを指定した場合、 このコンストラクタの終了後、 その入力ストリームの読み込み位置は、 Jar形式のファイルイメージの直後になります。 したがって、Jar形式のファイルイメージのみを持つ入力ストリームの場合、 ストリームの終端に達しており、 その次のreadメソッド呼び出しは -1 を返します。 有効なJar形式のファイルイメージが取得できなかった場合、 このコンストラクタの終了後の入力ストリームの読み込み位置は機種依存です。
コンストラクタの終了後、入力ストリームへの参照を保持しません。 また、このコンストラクタは、入力ストリームをクローズしません。 入力ストリームのクローズはコンストラクタの呼び出し側で行ってください。
Jar の形式に違反しているようなデータを与えた場合には、
コンストラクタ呼び出し時、
そのオブジェクトに対する getSize(String) や
getInputStream(String) 呼び出し時のいずれかで
JarFormatException が発生します。
in - Jar形式のファイルイメージを保持する入力ストリームを指定します。
NullPointerException - 引数 in が null の場合に発生します。
JarFormatException - Jar形式エラーが発生した場合にスローされます。
java.io.IOException - I/O エラーが発生した場合に発生します。
public JarInflater(byte[] data)
throws JarFormatException
バイト配列から新しいJarInflaterを生成します。 指定されたバイト配列からは、 有効なJar形式のファイルイメージが取得できなければなりません。
バイト配列の先頭から、 有効なJar形式のファイルイメージ1つ分のデータが読み込まれます。
コンストラクタの終了後、バイト配列への参照を保持しません。
Jar の形式に違反しているようなデータを与えた場合には、
コンストラクタ呼び出し時、
そのオブジェクトに対する getSize(String) や
getInputStream(String) 呼び出し時のいずれかで
JarFormatException が発生します。
data - Jar形式のファイルイメージを保持するバイト配列を指定します。
NullPointerException - 引数 data が null の場合に発生します。
JarFormatException - Jar形式エラーが発生した場合にスローされます。
| メソッドの詳細 |
public void close()
すでにこのJarInflaterから取得された入力ストリームからの読み込みは 保証されません。
public long getSize(String name)
throws JarFormatException
name - エントリ名を指定します。
IllegalStateException - JarInflaterがクローズされている場合に発生します。
NullPointerException - 引数 name が null の場合に発生します。
JarFormatException - Jar形式エラーが発生した場合にスローされます。
public java.io.InputStream getInputStream(String name)
throws JarFormatException
このメソッドの呼び出し毎に、異なるInputStreamオブジェクトを返します。
name - エントリ名を指定します。
IllegalStateException - JarInflaterがクローズされている場合に発生します。
NullPointerException - 引数 name が null の場合に発生します。
IllegalArgumentException - [DoJa-4.1 (902i) 以降]
引数 name に "/./", "/../"
が含まれる場合に発生します。
JarFormatException - Jar形式エラーが発生した場合にスローされます。