jp.gr.java_conf.dangan.util.lha
Class LzssInputStream
InputStream
jp.gr.java_conf.dangan.util.lha.LzssInputStream
public class LzssInputStream
extends InputStream
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]
ソース整備
タブ廃止
ライセンス文の修正
LzssInputStream(PreLzssDecoder decoder) - in から LZSS圧縮データ の入力を受けて、
解凍されたデータを提供する入力ストリームを構築する。
このコンストラクタから生成された LzssInputStreamは
-lh1-等の解凍データの最後のデータを読み込んだ後、
次のデータの読み取りで必ずEndOfStreamに達するとは
限らないデータを正常に復元できない(終端以降にゴミ
データがつく可能性がある)。
|
LzssInputStream(PreLzssDecoder decoder, long length) - in から LZSS圧縮データ の入力を受けて、
解凍されたデータを提供する入力ストリームを構築する。
|
int | available() - 接続された入力ストリームからブロックしないで
読み込むことのできるバイト数を得る。
|
void | close() - この入力ストリームを閉じ、使用していた
全てのリソースを開放する。
|
void | mark(int readLimit) - 接続された入力ストリームの現在位置にマークを設定し、
reset() メソッドでマークした時点の 読み込み位置に
戻れるようにする。
InputStream の mark() と違い、 readLimit で設定した
限界バイト数より前にマーク位置が無効になる可能性がある。
ただし、readLimit を無視して無限に reset() 可能な
InputStream と接続している場合は readLimit に
どのような値を設定されても
reset() で必ずマーク位置に復旧できる事を保証する。
|
boolean | markSupported() - 接続された入力ストリームが mark() と reset() を
サポートするかを得る。
|
int | read() - コンストラクタで指定された PreLzssDecoder の
圧縮されたデータを解凍し、1バイトのデータを供給する。
|
int | read(byte[] buffer) - コンストラクタで指定された PreLzssDecoder の
圧縮されたデータを解凍し、bufferを満たすように
解凍されたデータを読み込む。
|
int | read(byte[] buffer, int index, int length) - コンストラクタで指定された PreLzssDecoder の
圧縮されたデータを解凍し、buffer の index から
length バイトのデータを読み込む。
|
void | reset() - 接続された入力ストリームの読み込み位置を最後に
mark() メソッドが呼び出されたときの位置に設定する。
|
long | skip(long length) - 解凍されたデータを lengthバイト読み飛ばす。
|
LzssInputStream
public LzssInputStream(PreLzssDecoder decoder)
in から LZSS圧縮データ の入力を受けて、
解凍されたデータを提供する入力ストリームを構築する。
このコンストラクタから生成された LzssInputStreamは
-lh1-等の解凍データの最後のデータを読み込んだ後、
次のデータの読み取りで必ずEndOfStreamに達するとは
限らないデータを正常に復元できない(終端以降にゴミ
データがつく可能性がある)。
decoder
- LZSS圧縮データ供給ストリーム
LzssInputStream
public LzssInputStream(PreLzssDecoder decoder,
long length)
in から LZSS圧縮データ の入力を受けて、
解凍されたデータを提供する入力ストリームを構築する。
decoder
- LZSS圧縮データ供給ストリームlength
- 解凍後のサイズ
available
public int available()
throws IOException
接続された入力ストリームからブロックしないで
読み込むことのできるバイト数を得る。
close
public void close()
throws IOException
この入力ストリームを閉じ、使用していた
全てのリソースを開放する。
mark
public void mark(int readLimit)
接続された入力ストリームの現在位置にマークを設定し、
reset() メソッドでマークした時点の 読み込み位置に
戻れるようにする。
InputStream の mark() と違い、 readLimit で設定した
限界バイト数より前にマーク位置が無効になる可能性がある。
ただし、readLimit を無視して無限に reset() 可能な
InputStream と接続している場合は readLimit に
どのような値を設定されても
reset() で必ずマーク位置に復旧できる事を保証する。
readLimit
- マーク位置に戻れる限界のバイト数。
このバイト数を超えてデータを読み
込んだ場合 reset()できなくなる可
能性がある。
markSupported
public boolean markSupported()
接続された入力ストリームが mark() と reset() を
サポートするかを得る。
- ストリームが mark() と reset() を
サポートする場合は true。
サポートしない場合は false。
read
public int read()
throws IOException
コンストラクタで指定された PreLzssDecoder の
圧縮されたデータを解凍し、1バイトのデータを供給する。
read
public int read(byte[] buffer)
throws IOException
コンストラクタで指定された PreLzssDecoder の
圧縮されたデータを解凍し、bufferを満たすように
解凍されたデータを読み込む。
read
public int read(byte[] buffer,
int index,
int length)
throws IOException
コンストラクタで指定された PreLzssDecoder の
圧縮されたデータを解凍し、buffer の index から
length バイトのデータを読み込む。
buffer
- データを読み込むバッファindex
- buffer 内のデータ読みこみ開始位置length
- 読み込むデータ量
reset
public void reset()
throws IOException
接続された入力ストリームの読み込み位置を最後に
mark() メソッドが呼び出されたときの位置に設定する。
skip
public long skip(long length)
throws IOException
解凍されたデータを lengthバイト読み飛ばす。
length
- 読み飛ばすデータ量(単位はバイト)
When you found typographical errors or omissions, Please mail to cqw10305@nifty.com
The company name and product name which are used in this document, it is the trademark or registered trademark of each company generally.
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.