LHA Library for Java

パッケージ jp.gr.java_conf.dangan.util.lha

このパッケージは LHA 互換の書庫ファイルの読み込み、書き出しのためのクラスを java.util.zip パッケージと似たようなインターフェイスで提供する。

参照:
          説明

インタフェースの概要
HashMethod ハッシュ関数を提供するインターフェイス。
LzssSearchMethod LzssOutputStream で使用される 最長一致検索を提供するインターフェイス。
PostLzssEncoder LZSS圧縮コードを処理する インターフェイス。
PreLzssDecoder LZSS圧縮コードを供給するインターフェイス。
 

クラスの概要
BinaryTreeSearch 二分木を使用した LzssSearchMethod の実装。
CompressMethod LHAの各種定数を定義する。
CRC16 CRC16値を算出するためのクラス。
DynamicHuffman 動的ハフマンを扱うクラス。
HashAndBinaryTreeSearch ハッシュと二分木を使った LzssSearchMethod の実装。
HashAndChainedListSearch ハッシュと単方向連結リストを使って高速化された LzssSearchMethod。
HashDefault 試作プログラム ar940528 や LHa for Unix で使用されているハッシュ関数。
HashShort データパタンの先頭2バイトから 0 〜 4095 のハッシュ値を生成するハッシュ関数。
LhaChecksum LHAで使用される 単純な 1バイトのチェックサム値を 算出するためのクラス。
LhaFile LHA書庫ファイルからエントリデータを読み出す InputStreamを得るためのユーティリティクラス。
LhaHeader LHAヘッダを扱う。
LhaImmediateOutputStream 接続されたRandomAccessFileに 圧縮データを出力するためのユーティリティクラス。
LhaInputStream 接続されたストリームからLHA書庫データを読みこみ、 エントリを解凍しつつ読み込むためのユーティリティクラス。
LhaOutputStream 接続されたストリームに 圧縮データを出力するためのユーティリティクラス。
LhaProperty LHA Library for Java の各種設定を扱う。
LhaRetainedOutputStream 接続されたRandomAccessFileに 圧縮データを出力するためのユーティリティクラス。
LzssInputStream LZSS 圧縮されたデータを解凍しながら供給する入力ストリーム。
LzssOutputStream データを LZSS圧縮しながら 指定された PostLzssEncoder に出力する圧縮用出力ストリーム。
PatriciaTrieSearch PATRICIA Trie を使用した LzssSearchMethod の実装。
PostLh1Encoder -lh1- 圧縮用の PostLzssEncoder。
PostLh2Encoder -lh2- 圧縮用 PostLzssEncoder。
PostLh3Encoder -lh3- 圧縮用 PostLzssEncoder。
PostLh5Encoder -lh4-, -lh5-, -lh6-, -lh7- 圧縮用 PostLzssEncoder。
PostLz5Encoder -lz5- 圧縮用 PostLzssEncoder。
PostLzsEncoder -lzs- 圧縮用 PostLzssEncoder。
PreLh1Decoder -lh1- 解凍用の PreLzssDecoder。
PreLh2Decoder -lh2- 解凍用 PreLzssDecoder。
PreLh3Decoder -lh3- 解凍用の PreLzssDecoder。
PreLh5Decoder -lh4-, -lh5-, -lh6-, -lh7- 解凍用の PreLzssDecoder。
PreLz5Decoder -lz5- 解凍用 PreLzssDecoder。
PreLzsDecoder -lzs- 解凍用 PreLzssDecoder。
SimpleSearch 特別な検索機構を用いない LzssSearchMethod の最もシンプルな実装。
StaticHuffman 静的ハフマン用ユーティリティ関数群を保持する。
TwoLevelHashSearch 二段階ハッシュと単方向連結リストを使って高速化された LzssSearchMethod。
 

例外の概要
BadHuffmanTableException BlockHuffman.LenListToCodeList() 内で、 渡された LenList ( ハフマン符号長の表 )が不正なため、 ハフマン符号を生成できない事を示す。
 

パッケージ jp.gr.java_conf.dangan.util.lha の説明

このパッケージは LHA 互換の書庫ファイルの読み込み、書き出しのためのクラスを java.util.zip パッケージと似たようなインターフェイスで提供する。 主なクラスの対応関係は以下のとおり。

java.util.zip
の主なクラス
jp.gr.java_conf.dangan.util.lha
の対応するクラス
説明
ZipEntry LhaHeader ファイルの情報を扱う。
ZipInputStream LhaInputStream 書庫ファイルデータを供給する入力ストリームから ファイルデータを解凍して読み込む。
ZipFile LhaFile 書庫ファイルからファイルデータを解凍して読み込む。
ZipOutputStream LhaOutputStream データを書庫ファイルデータへと圧縮しながら 出力ストリームに書き出す。

また、LhaOutputStream と似たようなクラスに LhaRetainedOutputStream、 LhaImmediateOutputStream が存在する。 これらのクラスは オリジナルの LHA が本来ストリームを志向して作成されていない、 すなわち

(1)仮ヘッダ書き出し
(2)圧縮データ書き出し
(3)仮ヘッダ位置に戻って正式ヘッダ書き出し

というように書き戻し処理が必要となる形式であるため、 LhaOutputStream では正式ヘッダが確定する(データを全て圧縮する)まで 圧縮データを全て蓄えておくためのバッファ領域を必要としてしまう。 LhaRetainedOutputStream と LhaImmediateOutputStream は オリジナルの LHA と同じように出力先を RandomAccessFile に 限定する事によって LhaOutputStream のようなバッファ領域を必要としない。 LhaRetainedOutputStream と LhaImmediateOutputStream の違いは LHA が扱える全ての圧縮形式では 圧縮サイズがオリジナルサイズを超える(圧縮に失敗する) 可能性があるが、この時オリジナルの LHA と同じように 手動で格納すべきファイルを再度先頭から読み込み、 それを無圧縮で格納しなければならないのが LhaImmediateOutputStream で、 その際の処理を自動化しているのが LhaRetainedOutputStream である。


LHA Library for Java

バグやドキュメントの誤りの報告は作者宛てにお願いします。
ドキュメント内に含まれる社名、製品名については一般に各社の商標または登録商標です。
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.