len(int) - static method in class jp.gr.java_conf.dangan.io.
Bits val のビット長を得る。
val は符号なし 32ビット整数とみなされる。
log2( (long)val & 0xFFFFFFFFL ) の戻り値の
小数点以下を切り捨てたものと同等。
ハフマン符号長のリストから ハフマン符号表を作成する。
圧縮形式を示す文字列。
LH0 は 無圧縮を示す "-lh0-" である。
圧縮形式を示す文字列。
LH1 は前段に 4キロバイトの辞書、最大一致長60バイトの
LZSS法、後段に 適応的ハフマン法を使用することを意味する
"-lh1-" である。
圧縮形式を示す文字列。
LH2 は前段に 8キロバイトの辞書、最大一致長256バイトの
LZSS法、後段に 適応的ハフマン法を使用することを意味する
"-lh2-" である。
この圧縮法は LH1 から LH5 への改良途中で試験的に
使われたが、現在は使用されていない。
圧縮形式を示す文字列。
LH3 は前段に 8キロバイトの辞書、最大一致長256バイトの
LZSS法、後段に 静的ハフマン法を使用することを意味する
"-lh3-" である。
この圧縮法は LH1 から LH5 への改良途中で試験的に
使われたが、現在は使用されていない。
圧縮形式を示す文字列。
LH4 は前段に 4キロバイトの辞書、最大一致長256バイトの
LZSS法、後段に 静的ハフマン法を使用することを意味する
"-lh4-" である。
この圧縮法は 1990年代前半の非力なマシン上で圧縮を行う際、
LH5圧縮を行うだけのシステム資源を得られなかった時に使わ
れたが、現在は殆ど使用されていない。
圧縮形式を示す文字列。
LH5 は前段に 8キロバイトの辞書、最大一致長256バイトの
LZSS法、後段に 静的ハフマン法を使用することを意味する
"-lh5-" である。
現在、LHAで標準で使用される圧縮法である。
圧縮形式を示す文字列。
LH6 は前段に 32キロバイトの辞書、最大一致長256バイトの
LZSS法、後段に 静的ハフマン法を使用することを意味する
"-lh6-" である。
"-lh6-" という文字列は LH7 の圧縮法の実験に使用されて
いた。そのため、LHAの実験版が作成した書庫には "-lh6-"
の文字列を使用しながら LH7 形式で圧縮されているものが
存在するらしい。
また この圧縮法は開発されてから 10年近く経つが未だに
公の場所に この圧縮法で圧縮された書庫は登録しないこと
が望ましいとされている。
圧縮形式を示す文字列。
LH7 は前段に 64キロバイトの辞書、最大一致長256バイトの
LZSS法、後段に 静的ハフマン法を使用することを意味する
"-lh7-" である。
また この圧縮法は開発されてから 10年近く経つが未だに
公の場所に この圧縮法で圧縮された書庫は登録しないこと
が望ましいとされている。
LHAで使用される 単純な 1バイトのチェックサム値を
算出するためのクラス。
-- revision history --
$Log: LhaChecksum.java,v $
Revision 1.0 2002/08/05 00:00:00 dangan
add to version control
[maintanance]
ソース整備
タブ廃止
ライセンス文の修正
LHA書庫ファイルからエントリデータを読み出す
InputStreamを得るためのユーティリティクラス。
java.util.zip.ZipFile と似た
インターフェイスを持つように作った。
CRC16等によるチェックは行わない。
-- revision history --
$Log: LhaFile.java,v $
Revision 1.1 2002/12/08 00:00:00 dangan
[maintenance]
LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。
Revision 1.0 2002/08/05 00:00:00 dangan
add to version control
[improvement]
エントリの管理に Hashtable を使用する事によって
大量のエントリを持つ書庫でエントリ開始位置を
より速く見つけられるように改良。
[change]
コンストラクタから 引数に String encode を取るものを廃止、
Properties を引数に取るものを追加。
[maintanance]
ソース整備
タブ廃止
ライセンス文の修正
filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
filename で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。
LHAヘッダを扱う。
このクラスは java.util.zip パッケージでは ZipEntry と近いが、
ヘッダの入出力のためのユーティリティ関数を持つ点が違う。
このクラスは set系メソッドで為された方が良いチェックを
getBytes() 時に行うように書かれている。その点は注意すること。
-- revision history --
$Log: LhaHeader.java,v $
Revision 1.2.2.3 2005/05/03 07:50:30 dangan
[bug fix]
exportLevel1Header() で skip size のチェックがされていなかった。
Revision 1.2.2.2 2005/02/02 00:57:46 dangan
[bug fix]
importLevelXHeader(byte[], String) でファイルサイズを int で読み込んでいたため
31ビット値以上のサイズのファイルを正しく扱えていなかったのを修正。
Revision 1.2.2.1 2003/07/20 13:19:21 dangan
[bug fix]
exportDirNameExtHeader(String) で System.arraycopy の src と dest の配置が間違っていた。
Revision 1.2 2002/12/08 00:00:00 dangan
[maintenance]
LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。
Revision 1.1 2002/12/05 00:00:00 dangan
[improvement]
64ビットファイルサイズヘッダに対応。
[change]
LhaUtil.DefaultEncoding から LhaProperty.encoding を使用するように変更。
getNextHeaderData() を getFirstHeaderData() に名前変更。
新しい getNextHeaderData() は呼び出された位置で
ヘッダを発見できない場合 null を返す。
LhaHeader を拡張したサブクラスを使用する人のための createInstance() を追加。
Revision 1.0 2002/08/05 00:00:00 dangan
add to version control
[bug fix]
setDate( null ) を許していた。
setCompressMethod( null ) を許していた。
exportLevel2,3Header で
Date が 32bit の time_t の範囲外の値(負の値を含む)の場合を許していた。
[change]
exportHeader で ヘッダレベルが 0,1,2,3 のいずれでもない場合
IllegalStateException を投げるように変更。
[maintenance]
ソース整備
タブ廃止
ライセンス文の修正
ヘッダデータから 新しい LhaHeader の
インスタンスを生成する。
エンコードは LhaUtil.DefaultEncode が使用される。
ヘッダデータから 新しい LhaHeader の
インスタンスを生成する。
path という名前を持つ LhaHeader のインスタンスを生成する。
パスデリミタには File.separator を使用すること。
path が パスデリミタでターミネートされている場合は
ディレクトリであると解釈される。
path という名前を持ち、最終更新日時が date の
LhaHeader のインスタンスを生成する。
パスデリミタには File.separator を使用すること。
path が パスデリミタでターミネートされている場合は
ディレクトリであると解釈される。
接続されたRandomAccessFileに 圧縮データを出力するためのユーティリティクラス。
java.util.zip.ZipOutputStream と似たインターフェイスを持つように作った。
圧縮失敗時( 圧縮後サイズが圧縮前サイズを上回った場合 )の処理を
手動で行わなければならない。
以下に そのようなコードを示す。
LhaCompressFiles( String arcfile, File[] files ){
LhaImmediateOutputStream lio = new LhaImmediateOutputStream( arcfile );
for( int i = 0 ; i < files.length ; i++ ){
RandomAccessFile raf = new RandomAccessFile( files[i] );
LhaHeader header = new LhaHeader( files[i].getName() );
header.setLastModified( new Date( files.lastModified() ) );
header.setOriginalSize( files.length() );
byte[] buffer = new byte[8192];
int length;
while( 0 <= ( length = raf.read( buffer ) ) ){
lio.write( buffer, 0, length );
}
if( !lio.closeEntry() ){
header.setCompressMethod( CompressMethod.LH0 );
lio.putNextEntry( lhaheader );
raf.seek( 0 );
while( 0 <= ( length = raf.read( buffer ) ) ){
lio.write( buffer, 0, length );
}
lio.closeEntry();
}
lio.close();
}
進捗報告を実装する場合、このような処理をクラス内に隠蔽すると進捗報告は何秒間か
時によっては何十分も応答しなくなる。(例えばギガバイト級のデータを扱った場合)
LhaRetainedOutputStream で発生する、このような事態を避けるために設計されている。
また、JDK 1.1 以前では RandomAccessFile が setLength を持たないため、
書庫データの後ろに他のデータがある場合でもファイルサイズを切り詰めることが出来ない。
この問題点は常にサイズ0の新しいファイルを開く事によって回避する事ができる。
-- revision history --
$Log: LhaImmediateOutputStream.java,v $
Revision 1.2 2002/12/11 02:25:06 dangan
[bug fix]
jdk1.2 でコンパイルできなかった箇所を修正。
Revision 1.1 2002/12/08 00:00:00 dangan
[maintenance]
LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。
Revision 1.0 2002/08/05 00:00:00 dangan
add to version control
[change]
コンストラクタから 引数に String encode を取るものを廃止、
Properties を引数に取るものを追加。
[maintenance]
ソース整備
タブ廃止
ライセンス文の修正
filename のファイルに 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
filename のファイルに 圧縮データを出力するOutputStreamを構築する。
fileに 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
fileに 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
filename のファイルに 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
filename のファイルに 圧縮データを出力するOutputStreamを構築する。
接続されたストリームからLHA書庫データを読みこみ、
エントリを解凍しつつ読み込むためのユーティリティクラス。
java.util.zip.ZipInputStream と似たインターフェイスを持つように作った。
壊れた書庫の処理に関しては壊れたエントリ以降の
壊れていないエントリも正常に読みこめない可能性がある。
-- revision history --
$Log: LhaInputStream.java,v $
Revision 1.1.2.1 2003/07/20 13:22:31 dangan
[bug fix]
getNextEntry() で CompressMethod.connectDecoder に
this.limit を渡すべきところで this.in を渡していた。
Revision 1.1 2002/12/08 00:00:00 dangan
[maintenance]
LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。
Revision 1.0 2002/08/05 00:00:00 dangan
add to version control
[change]
コンストラクタから 引数に String encode を取るものを廃止、
Properties を引数に取るものを追加。
書庫終端に達した場合はそれ以上読み込めないように修正。
available() の振る舞いを java.util.zip.ZipInputStream と同じように
エントリの終端に達していない場合は 1 エントリの終端に達した場合は 0 を返すように変更。
[maintenance]
ソース整備
タブ廃止
ライセンス文の修正
in から LHA書庫のデータを読み取る InputStream を構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
in から LHA書庫のデータを読み取る InputStreamを構築する。
接続されたストリームに 圧縮データを出力するためのユーティリティクラス。
java.util.zip.ZipOutputStream と似たインターフェイスを持つように作った。
Zipと違い、LHAの出力は本来 2パスであるため、1つのエントリを圧縮するまで、
エントリ全体のデータを持つ一時記憶領域が必要となる。
そのような記憶領域を使用したくない場合は LhaRetainedOutputStream か
LhaImmediateOutputStream を使用する事。
-- revision history --
$Log: LhaOutputStream.java,v $
Revision 1.1.2.2 2005/05/03 07:48:40 dangan
[bug fix]
圧縮法識別子 -lhd- を指定した時、圧縮後サイズがオリジナルサイズを下回らないため、
必ず -lh0- に再設定されていた。そのためディレクトリ情報を格納できなかった。
Revision 1.1.2.1 2005/04/29 02:14:28 dangan
[bug fix]
圧縮法識別子 -lhd- を指定した時、圧縮後サイズがオリジナルサイズを下回らないため、
必ず -lh0- に再設定されていた。そのためディレクトリ情報を格納できなかった。
Revision 1.1 2002/12/08 00:00:00 dangan
[maintenance]
LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。
Revision 1.0 2002/08/05 00:00:00 dangan
add to version control
[change]
コンストラクタから 引数に String encode を取るものを廃止、
Properties を引数に取るものを追加。
[maintenance]
ソース整備
タブ廃止
ライセンス文の修正
out に 圧縮データを出力するOutputStreamを構築する。
一時退避機構はメモリを使用する。このため、
圧縮時データ量がメモリ量を超えるようなファイルは圧縮できない。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
out に 圧縮データを出力するOutputStreamを構築する。
一時退避機構はメモリを使用する。このため、
圧縮時データ量がメモリ量を超えるようなファイルは圧縮できない。
out に 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
out に 圧縮データを出力するOutputStreamを構築する。
LHA Library for Java の各種設定を扱う。
LhaProperty.getProperty() や LhaProperty.getProperties() で得られる値は
システムプロパティ、設定ファイル、デフォルト値の何れかが用いられ、
その優先順位は以下のようになる。
- システムプロパティ に設定されている値。
- jp/gr/java_conf/dangan/util/lha/resources/lha.properties
に設定された値。
- デフォルト値。
キーの一覧は以下のとおり。
キー | 対応する値の説明 |
lha.encoding | String とヘッダ内の文字列との相互変換に用いるエンコーディング |
lha.packages | 生成式内で使われるクラスのパッケージ名の列挙(カンマ区切り) |
lha.lzs.encoder | -lzs- 形式への符号化を行うオブジェクトの生成式 |
lha.lz4.encoder | -lz4- 形式への符号化を行うオブジェクトの生成式 |
lha.lz5.encoder | -lz5- 形式への符号化を行うオブジェクトの生成式 |
lha.lh0.encoder | -lh0- 形式への符号化を行うオブジェクトの生成式 |
lha.lh1.encoder | -lh1- 形式への符号化を行うオブジェクトの生成式 |
lha.lh2.encoder | -lh2- 形式への符号化を行うオブジェクトの生成式 |
lha.lh3.encoder | -lh3- 形式への符号化を行うオブジェクトの生成式 |
lha.lh4.encoder | -lh4- 形式への符号化を行うオブジェクトの生成式 |
lha.lh5.encoder | -lh5- 形式への符号化を行うオブジェクトの生成式 |
lha.lh6.encoder | -lh6- 形式への符号化を行うオブジェクトの生成式 |
lha.lh7.encoder | -lh7- 形式への符号化を行うオブジェクトの生成式 |
lha.lhd.encoder | -lhd- 形式への符号化を行うオブジェクトの生成式 |
lha.lzs.decoder | -lzs- 形式のデータを復号化するオブジェクトの生成式 |
lha.lz4.decoder | -lz4- 形式のデータを復号化するオブジェクトの生成式 |
lha.lz5.decoder | -lz5- 形式のデータを復号化するオブジェクトの生成式 |
lha.lh0.decoder | -lh0- 形式のデータを復号化するオブジェクトの生成式 |
lha.lh1.decoder | -lh1- 形式のデータを復号化するオブジェクトの生成式 |
lha.lh2.decoder | -lh2- 形式のデータを復号化するオブジェクトの生成式 |
lha.lh3.decoder | -lh3- 形式のデータを復号化するオブジェクトの生成式 |
lha.lh4.decoder | -lh4- 形式のデータを復号化するオブジェクトの生成式 |
lha.lh5.decoder | -lh5- 形式のデータを復号化するオブジェクトの生成式 |
lha.lh6.decoder | -lh6- 形式のデータを復号化するオブジェクトの生成式 |
lha.lh7.decoder | -lh7- 形式のデータを復号化するオブジェクトの生成式 |
lha.lhd.decoder | -lhd- 形式のデータを復号化するオブジェクトの生成式 |
lha.header | LhaHeader のインスタンスの生成式 |
生成式は以下のように定義される。
<生成式> | ::= <コンストラクタ> | <配列> | <置換文字列> | <クラス名> | <文字列> |
<コンストラクタ> | ::= <クラス名> '(' 引数 ')' |
<引数> | ::= [ <生成式> [ ',' <引数> ] ] |
<配列> | ::= '[' <要素> ']' |
<要素> | ::= [ <生成式> [ ',' <要素> ] ] |
クラス名は "lha.packages" に対応する値を使用して完全修飾名へと変換される。
置換文字列 はライブラリ内部でオブジェクトに置換される文字列で
現在以下の4種類が定義されている。
lha.???.encoder | out | 圧縮後のデータを受け取る java.io.OutputStream |
lha.???.decoder | in | 圧縮データを供給する java.io.InputStream |
length | 復号化されたデータのバイト数 |
lha.header | data | ヘッダデータを格納した byte配列 |
encoding | ヘッダ内の文字データを String に変換する際に使用するエンコーディング |
-- revision history --
$Log: LhaProperty.java,v $
Revision 1.0.2.2 2005/04/29 02:15:53 dangan
[bug fix]
createDefaultProperty() で圧縮法識別子 -lhd- 用のエンコーダどデコーダが設定されていなかった。
Revision 1.0.2.1 2004/06/27 12:09:49 dangan
[bugfix]
生成式でカンマを使うべき部分でピリオドを使っていたのを修正。
Revision 1.0 2002/12/05 00:00:00 dangan
first edition
add to version control
接続されたRandomAccessFileに 圧縮データを出力するためのユーティリティクラス。
java.util.zip.ZipOutputStream と似たインターフェイスを持つように作った。
圧縮失敗時( 圧縮後サイズが圧縮前サイズを上回った場合 )の処理を自動的に行う。
進捗報告を実装する場合、このような処理をクラス内に隠蔽すると進捗報告は何秒間か
時によっては何十分も応答しなくなる。(例えばギガバイト級のデータを扱った場合)
このような事態を避けたい場合は LhaImmediateOutputStreamを使用すること。
また、JDK 1.1 以前では RandomAccessFile が setLength を持たないため、
書庫データの後ろに他のデータがある場合でもファイルサイズを切り詰めることが出来ない。
この問題点は常にサイズ0の新しいファイルを開く事によって回避する事ができる。
-- revision history --
$Log: LhaRetainedOutputStream.java,v $
Revision 1.2 2002/12/11 02:25:14 dangan
[bug fix]
jdk1.2 でコンパイルできなかった箇所を修正。
Revision 1.1 2002/12/08 00:00:00 dangan
[maintenance]
LhaConstants から CompressMethod へのクラス名の変更に合わせて修正。
Revision 1.0 2002/08/05 00:00:00 dangan
add to version control
[change]
コンストラクタから 引数に String encode を取るものを廃止、
Properties を引数に取るものを追加。
[maintenance]
ソース整備
タブ廃止
ライセンス文の修正
filename のファイルに 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
filename のファイルに 圧縮データを出力するOutputStreamを構築する。
fileに 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
fileに 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
filename のファイルに 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには
LhaProperty.getProperties() で得られたプロパティが使用される。
filename のファイルに 圧縮データを出力するOutputStreamを構築する。
圧縮形式を示す文字列。
LHD は無圧縮で、ディレクトリを格納していることを示す
"-lhd-" である。
読み込み可能なデータ量が§限された入力ストリーム。
-- revision history --
$Log: LimitedInputStream.java,v $
Revision 1.1.2.1 2003/07/20 17:03:37 dangan
[maintenance]
最新の LimitedInputStream からソースを取り込む。
Revision 1.1 2002/12/05 00:00:00 dangan
[maintenance]
ソース整備
Revision 1.0 2002/07/24 00:00:00 dangan
add to version control
[change]
EndOfStream に達した後の read( new byte[0] ) や
read( byte[] buf, int off, 0 ) の戻り値を
InputStream と同じく 0 になるようにした
[maintenance]
タブ廃止
ライセンス文の修正
in からの読み込み可能なデータ量を§限した
入力ストリームを構築する。
LHAがDOSの16bitモードを使用して作られたことによる
ハフマン符号長の§限。
リトルエンディアンで
バイト配列や InputStream, OutputStream
にアクセスするメソッドを提供するユーティリティクラス。
-- revision history --
$Log: LittleEndian.java,v $
Revision 1.0 2002/07/24 00:00:00 dangan
add to version control
[change]
writeByte(), readByte() を撤去。
[maintenance]
ソース整備
圧縮形式を示す文字列。
LZ4 は 無圧縮を示す "-lz4-" である。
"-lz4-" は LHAが作成される前にメジャーであった
Larc の形式であり、当時の互換性に配慮して定義さ
れた。現在は殆ど使用されていない。
圧縮形式を示す文字列。
LZ5 は 4キロバイトの辞書、最大一致長17バイトの
LZSS法を使用することを示す "-lz5-" である。
"-lz5-" は LHAが作成される前にメジャーであった
Larc の形式であり、当時の互換性に配慮して定義さ
れた。現在は殆ど使用されていない。
圧縮形式を示す文字列。
LZS は 2キロバイトの辞書、最大一致長17バイトの
LZSS法を使用することを示す "-lzs-" である。
"-lzs-" は LHAが作成される前にメジャーであった
Larc の形式であり、当時の互換性に配慮して定義さ
れた。現在は殆ど使用されていない。
LZSS 圧縮されたデータを解凍しながら供給する入力ストリーム。
-- revision history --
$Log: LzssInputStream.java,v $
Revision 1.1 2002/12/08 00:00:00 dangan
[bug fix]
mark() 内で接続された PreLzssDecoder の
mark に与える readLimit の計算が甘かったのを修正。
Revision 1.0 2002/07/25 00:00:00 dangan
add to version control
[bug fix]
available() のスペルミスを修正。
skip() において decode() を呼ぶ判定条件が間違っていたのを修正。
[maintenance]
ソース整備
タブ廃止
ライセンス文の修正
in から LZSS圧縮データ の入力を受けて、
解凍されたデータを提供する入力ストリームを構築する。
このコンストラクタから生成された LzssInputStreamは
-lh1-等の解凍データの最後のデータを読み込んだ後、
次のデータの読み取りで必ずEndOfStreamに達するとは
限らないデータを正常に復元できない(終端以降にゴミ
データがつく可能性がある)。
in から LZSS圧縮データ の入力を受けて、
解凍されたデータを提供する入力ストリームを構築する。
データを LZSS圧縮しながら
指定された PostLzssEncoder に出力する圧縮用出力ストリーム。
-- revision history --
$Log: LzssOutputStream.java,v $
Revision 1.2 2002/12/06 00:00:00 dangan
[change]
flush() で write() された全てのデータを
接続された PostLzssEncoder に出力するように修正。
[maintenance]
slide幅が常に DictionarySize バイトになるように修正。
Revision 1.1 2002/10/20 00:00:00 dangan
[bug fix]
初期状態で flush() したり 連続で flush() すると
( lastsearchret が NEEDSEARCH の時に encode() が呼ばれると )
直後の 1バイトが化けていた。
flush() 時に putLength() を考慮していなかったため
検索機構を破壊するような searchAndPut を行っていたのを修正。
flush() 時に TextBuffer 最後尾のMaxMatchバイトのデータを出力していなかった。
Revision 1.0 2002/07/25 00:00:00 dangan
add to version control
[bug fix]
getMatchLen() で searchret >> 22 とすべきところが
searchret >>> 22 となっていたのを修正。
[maintenance]
LhaUtil.createInstance() の使用をやめ
代わりに Factory.createInstance() を使用する。
ソース整備
タブ廃止
ライセンス文の修正
write() によって書きこまれたデータを
LZSSで圧縮し、圧縮したデータを encoderに出力する
出力ストリームを構築する。
write() によって書きこまれたデータを
LZSSで圧縮し、圧縮したデータを encoderに出力する
出力ストリームを構築する。
write() によって書きこまれたデータを
LZSSで圧縮し、圧縮したデータを encoderに出力する
出力ストリームを構築する。
LzssOutputStream で使用される
最長一致検索を提供するインターフェイス。
コンストラクタの形式は
LzssSearchMethod( int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer )
パラメータ:
DictionarySize - LZSSの辞書サイズ
MaxMatch - LZSSの最大一致長
Threshold - LZSSの圧縮/非圧縮の閾値
TextBuffer - LZSS圧縮を施すデータの入ったバッファ
のような形式に則ること。
また、追加の引数をとりたい場合は
LzssSearchMethod( int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer,
Object ExtraArgument1,
Object ExtraArgument2 )
のような形式を用いる。
なお、コンストラクタの引数チェックは追加の引数がある場合について行えばよい。
-- revision history --
$Log: LzssSearchMethod.java,v $
Revision 1.1 2002/12/04 00:00:00 dangan
[maintenance]
ソース整備
Revision 1.0 2002/07/24 00:00:00 dangan
add to version control
[change]
slide() で引数を取らずに
スライド幅を常に DictionarySize とするように変更。
putLength を putRequires に変更
[maintenance]
タブ廃止
ライセンス文の修正