キャッシュを使用して高速化するための入力ストリーム。
BufferedInputStream とは read系メソッドが synchronized
されていないため、同期処理によるロスがない、mark/reset は
キャッシュ内の読み込み位置の移動で行えるときのみサポートであり、
それ以上は接続された入力ストリームの性能による、等の違いがある。
-- revision history --
$Log: CachedInputStream.java,v $
Revision 1.3 2002/12/05 00:00:00 dangan
[maintenance]
ソース整備
Revision 1.2 2002/11/02 00:00:00 dangan
[bug fix]
available() でブロックせずに読み込める量よりも大きい値を返していた。
Revision 1.1 2002/09/05 00:00:00 dangan
[change]
EndOfStream に達した後の read( new byte[0] ) や
read( byte[] buf, int off, 0 ) の戻り値を
InputStream と同じく 0 になるようにした。
Revision 1.0 2002/09/05 00:00:00 dangan
add to version control
[bug fix]
mark() で 接続された in に渡す readLimit の計算が甘かったため、
要求された readLimit に達する前にマーク位置が破棄される事があった。
read( buf, off, len ) 内の System.arraycopy の呼び出しで
dst と src を逆にしていた。
[change]
EndOfStream に達した後の read( new byte[0] ) や
read( buf, off,0 ) が -1 を返すように修正。
[maintenance]
タブ廃止
ライセンス文の修正
デフォルトのサイズのキャッシュを持つ
CachedInputStreamを構築する。
指定されたサイズのキャッシュを持つ
CachedInputStreamを構築する。
CCITT の X.25という規格の crc の初期値。
CCITT の X.25という規格の
多項式 x^16 + x^12 + x^5 + 1 をビット表現にしたもの。
ノードが葉でないノードなら子ノードのノード番号、
ノードが葉ならノードの持つデータを全ビット反転したものを得る。
子ノードのノード番号は兄弟特性と利用するため、
node の 0 の子ノードの場合 childNode( node )
node の 1 の子ノードの場合 childNode( node ) - 1
となる。
このオブジェクトの現在の状態を持つコピーを作成して返す。
この入力ストリームを閉じ、
使用していたリソースを開放する。
この出力ストリームと、接続された出力ストリームを閉じ、
使用していたリソースを開放する。
この入力ストリームを閉じ、使用していた
全てのリソースを開放する。
接続された入力ストリームとの接続を解除する。
このメソッドは disconnect() を呼ぶだけである。
接続された出力ストリームとの接続を解除する。
このメソッドは disconnect() を呼び出すだけである。
この LHA書庫ファイルを閉じる。
その際、このLhaFileが発行した全ての
InputStreamは強§的に閉じられる。
出力先に全てのデータを出力し、ストリームを閉じる。
また、使用していた全てのリソースを解放する。
この入力ストリームを閉じ、使用していた
全てのリソースを開放する。
出力先に全てのデータを出力し、
ストリームを閉じる。
出力先に全てのデータを出力し、ストリームを閉じる。
また、使用していた全てのリソースを解放する。
この入力ストリームを閉じ、使用していた
全てのリソースを開放する。
この入力ストリームを閉じ、使用していた
全てのリソースを開放する。
このクラスに貯えられた全てのデータを接続された
PostLzssEncoder に出力し この出力ストリームと、
接続されたストリームを閉じ、
使用していたリソースを開放する。
この出力ストリームと、接続された出力ストリームを閉じ、
使用していたリソースを解放する。
この出力ストリームと、接続された出力ストリームを閉じ、
使用していたリソースを開放する。
この出力ストリームと、接続された出力ストリームを閉じ、
使用していたリソースを開放する。
この出力ストリームと、接続された出力ストリームを閉じ、
使用していたリソースを開放する。
この出力ストリームと、接続された出力ストリームを閉じ、
使用していたリソースを開放する。
この出力ストリームと、接続された出力ストリームを閉じ、
使用していたリソースを解放する。
この出力ストリームと、接続された出力ストリームを閉じ、
使用していたリソースを開放する。
このストリームを閉じ、使用していた全ての資源を解放する。
このストリームを閉じ、使用していた全ての資源を解放する。
このストリームを閉じ、使用していた全ての資源を解放する。
このストリームを閉じ、使用していた全ての資源を解放する。
このストリームを閉じ、使用していた全ての資源を解放する。
この出力とストリームと
接続されていたストリームを閉じ、
使用していたリソースを解放する。
この入力ストリームを閉じ、使用していた
全てのリソースを開放する。
現在出力中のエントリを閉じ、次のエントリが出力可能な状態にする。
putNextEntryNotYetCompressed() で開いたエントリを閉じる場合
このメソッドは圧縮に失敗した(圧縮後サイズが圧縮前サイズを上回った)場合、
エントリ全体を書き込み先 の RandomAccessFile から削除する。
この削除処理は単に ファイルポインタを エントリ開始位置まで巻き戻すだけなので
RandomAccessFile に setLength() が無い jdk1.1 以前では
エントリを無圧縮(もしくは他の圧縮法)で再出力しない場合、
書庫データの終端以降に圧縮に失敗した不完全なデータが残ったままになる。
現在読み取り中のエントリを閉じ、
次のエントリを読みこめるようにストリームを設定する。
現在出力中のエントリを閉じ、次のエントリが出力可能な状態にする。
圧縮に失敗した(圧縮後サイズが圧縮前サイズを上回った)場合、
解凍し無圧縮で格納する。エントリのサイズが大きい場合、
この処理にはかなりの時間がかかる。
現在出力中のエントリを閉じ、次のエントリが出力可能な状態にする。
圧縮に失敗した(圧縮後サイズが圧縮前サイズを上回った)場合、
解凍し無圧縮で格納する。エントリのサイズが大きい場合、
この処理にはかなりの時間がかかる。
LHAの各種定数を定義する。
-- revision history --
$Log: CompressMethod.java,v $
Revision 1.1 2002/12/08 00:00:00 dangan
[change]
クラス名を LhaConstants から CompressMethod へと変更。
Revision 1.0 2002/07/24 00:00:00 dangan
add to version control
[change]
LhaUtil の connectExtractInputStream を connectDecoder として
connectCompressOutputStream を connectEncoder として引き継ぐ。
LhaUtil の CompressMethodTo????????? を引き継ぐ。
[maintanance]
ソース整備
タブ廃止
ライセンス文の修正
property に設定された生成式を利用して
in から method の圧縮法で圧縮されたデータを解凍し
供給する入力ストリームを構築する。
property に設定された生成式を利用して
method の圧縮法でデータを圧縮し、outに出力するストリームを構築する。
CRC16 - class jp.gr.java_conf.dangan.util.lha.
CRC16 CRC16値を算出するためのクラス。
クラス内の定数、処理、説明は
C言語によるアルゴリズム辞典
奥村晴彦著 技術評論社
ISBN4-87408-414-1 C3055 2400円(購入当時)
によった。
-- revision history --
$Log: CRC16.java,v $
Revision 1.0 2002/07/24 00:00:00 dangan
add to version control
[maintanance]
ソース整備
タブ廃止
ライセンス文の変更
CRC16() - constructor for class jp.gr.java_conf.dangan.util.lha.
CRC16 LHAで使用される 多項式と初期値を持つ CRC16を生成する。
poly で指定される 多項式を持つ CRC16を生成する。
初期値は poly が CRC16.CCITT_POLY であれば
CRC16.CCITT_INIT を そうでなければ
CRC16.DefaultINIT を使用する。
poly で指定される 多項式と initで指定される初期値を持つ
CRC16を生成する。
crcTable で指定される CRC算出用表と
initで指定される初期値を持つ CRC16を作成する。
LHAで使用される crc の初期値。
作者が勝手に設定した値であり、
CRC-ANSY でこの値が初期値として
定められているかは知らない。
CRC-ANSY または CRC-16 として有名な
多項式 x^16 + x^15 + x^2 + 1 をビット表現にしたもの。
property の キー"lha.header" に結び付けられた生成式を使用して
HeaderData から LhaHeader のインスタンスを生成する。
type で示されるクラスのインスタンスを生成する。
コンストラクタには args の型と一致するものを使用する。
classname で示されるクラスのインスタンスを生成する。
コンストラクタには args の型と一致するものを使用する。
search の戻り値を生成する。
search は一致位置を返すが、一致長も同時に返したほうが
非常に便利であるため、一致位置も一致長も必要なビット数が
少ないことを利用して int型でやり取りする。
そのための統一した処理を約束する関数。
この関数で生成された値から 一致位置や一致長を取り出す際には
getMatchLen、 getMatchPos を使用する。
LenList から、ハフマン復号用のテーブルを生成する。
LenList から、ハフマン復号用のテーブルと木を生成する。
テーブルは TableBits の大きさを持ち、それ以上の部分は木に格納される。
戻り値は new short[][]{ Table, Tree[0], Tree[1] } となる。
テーブルを引いた結果もしくは木を走査した際、負の値を得た場合、
それは復号化されたコードを全ビット反転したものである。
正の値であればそれは 木を走査するための index であり、
Tree[bit][index] のように使用する。