LHAライブラリ

jp.gr.java_conf.turner.util.lha
クラス LhaInputStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--java.io.FilterInputStream
              |
              +--jp.gr.java_conf.turner.util.lha.LhaInputStream

public class LhaInputStream
extends java.io.FilterInputStream

LHAファイルデコーダストリームクラス. 対応メソッド -lh0-, -lh1-, -lh4-,-lh5-,-lh6- ,-lh7-

作成者:
TURNER

コンストラクタの概要
LhaInputStream(java.io.InputStream in)
          LHAデコーダストリームのコンストラクタ.
 
メソッドの概要
 int available()
          現在の入力データが EOF に達したあとで呼び出した場合は 0 を返します, そうでない場合は常に 1 を返します.
 void close()
          LHAInputStreamをクローズします.
 void closeEntry()
          現在のLHAエントリーをクローズし、次のエントリの直前までスキップします.
 LhaEntry getNextEntry()
          LHAファイルエントリを読み込み、エントリデータの最初にストリームを配置します.
 int read()
          読み込み中のLHAエントリから1バイト読み込みます.
 int read(byte[] b)
          読み込み中のエントリからデータを読み込みます.
 int read(byte[] b, int off, int len)
          読み込み中のエントリからデータを読み込みます.
 long skip(long n)
          現在読み込み中のストリームを引数で指定したバイト数だけスキップします.
 
クラス java.io.FilterInputStream から継承したメソッド
mark, markSupported, reset
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

LhaInputStream

public LhaInputStream(java.io.InputStream in)
LHAデコーダストリームのコンストラクタ.
パラメータ:
in - LHAファイルフォーマットの入力ストリーム
メソッドの詳細

available

public int available()
              throws java.io.IOException
現在の入力データが EOF に達したあとで呼び出した場合は 0 を返します, そうでない場合は常に 1 を返します.

本来InputStreamのavailable()関数はブロックせずに読みこみ可能な バイト数を返すためのものです。

ですがブロックなしで読み込める実際のバイト数は展開してみないとわからないので ここではとりあえずこのような値を返します。(ZipInputStreamの仕様を真似ています)

オーバーライド:
クラス java.io.FilterInputStream 内の available
戻り値:
現在の入力データが EOF に達していない場合は常に 1.
例外:
java.io.IOException -  

close

public void close()
           throws java.io.IOException
LHAInputStreamをクローズします. エントリではなくデータの源のストリームをクローズします.
オーバーライド:
クラス java.io.FilterInputStream 内の close
例外:
java.io.IOException - IOエラーが起きたとき

closeEntry

public void closeEntry()
                throws java.io.IOException
現在のLHAエントリーをクローズし、次のエントリの直前までスキップします.
例外:
java.io.IOException - IOエラーが起きたとき

getNextEntry

public LhaEntry getNextEntry()
                      throws java.io.IOException
LHAファイルエントリを読み込み、エントリデータの最初にストリームを配置します.

ファイルエントリはアーカイブ内の1ファイルを表しています。 この関数を呼び出すことによりアーカイブ内の1つのデータをストリームとして 読み込みできるようになります。

また、1つのエントリでEOFに達してもさらにエントリが続いている限り、 この関数を呼び出して次のエントリデータの最初にストリームを配置できます。

アーカイブの最後に達したときはnullを返します。

戻り値:
ファイルエントリがまだあれば次のLhaEntryオブジェクト
例外:
java.io.IOException - IOエラーが起きたとき

read

public int read()
         throws java.io.IOException
読み込み中のLHAエントリから1バイト読み込みます.
オーバーライド:
クラス java.io.FilterInputStream 内の read
戻り値:
読み込まれた値 EOFに達していたときは-1を返す。
例外:
java.io.IOException - IOエラーが起きたとき

read

public int read(byte[] b)
         throws java.io.IOException
読み込み中のエントリからデータを読み込みます. 指定されたbyte配列に 配列の大きさぶんまで可能な限り読み込みます。
オーバーライド:
クラス java.io.FilterInputStream 内の read
パラメータ:
b - 読み込まれたデータを格納するためのbyte型の配列
戻り値:
読み込まれた有効なバイト数。またエントリの EOFに達していたときは-1を返す。
例外:
java.io.IOException - IOエラーが起きたとき

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
読み込み中のエントリからデータを読み込みます. 引数で指定されたぶんまで 可能な限りbyteの配列に読み込みます。
オーバーライド:
クラス java.io.FilterInputStream 内の read
パラメータ:
b - 読み込まれたデータを格納するためのbyte型の配列
off - 配列上の読み込み開始インデックス。
len - 最大読み込みバイト数
戻り値:
読み込まれた有効なバイト数。またエントリの EOFに達していたときは-1を返す。
例外:
java.io.IOException - IOエラーが起きたとき

skip

public long skip(long n)
          throws java.io.IOException
現在読み込み中のストリームを引数で指定したバイト数だけスキップします. EOFに達した場合はそこで停止します.
オーバーライド:
クラス java.io.FilterInputStream 内の skip
パラメータ:
n - スキップする数
戻り値:
実際にスキップした数
例外:
java.io.IOException - IOエラーが起きたとき
java.lang.IllegalArgumentException - n < 0 のとき

LHAライブラリ