public class LhaOutputStream
extends java.io.OutputStream
-- 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] ソース整備 タブ廃止 ライセンス文の修正
Constructor and Description |
---|
LhaOutputStream(java.io.OutputStream out)
out に 圧縮データを出力するOutputStreamを構築する。
一時退避機構はメモリを使用する。このため、 圧縮時データ量がメモリ量を超えるようなファイルは圧縮できない。 各圧縮形式に対応した符号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。 |
LhaOutputStream(java.io.OutputStream out,
java.util.Properties property)
out に 圧縮データを出力するOutputStreamを構築する。
一時退避機構はメモリを使用する。このため、 圧縮時データ量がメモリ量を超えるようなファイルは圧縮できない。 |
LhaOutputStream(java.io.OutputStream out,
java.io.RandomAccessFile file)
out に 圧縮データを出力するOutputStreamを構築する。
各圧縮形式に対応した符号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。 |
LhaOutputStream(java.io.OutputStream out,
java.io.RandomAccessFile file,
java.util.Properties property)
out に 圧縮データを出力するOutputStreamを構築する。
|
Modifier and Type | Method and Description |
---|---|
void |
close()
出力先に全てのデータを出力し、
ストリームを閉じる。
|
void |
closeEntry()
現在出力中のエントリを閉じ、次のエントリが出力可能な状態にする。
圧縮に失敗した(圧縮後サイズが圧縮前サイズを上回った)場合、
解凍し無圧縮で格納する。エントリのサイズが大きい場合、
この処理にはかなりの時間がかかる。
|
void |
flush()
flush は二つの動作を行う。
一つは現在書き込み中のエントリのデータを
一時退避機構に送りこむように指示する。
これは PostLzssDecoder、LzssOutputStream
の規約どおり flush() しなかった場合と
同じデータが出力される事を保証しない。
もう一つは 実際の出力先を flush() する。
|
void |
putNextEntry(LhaHeader header)
新しいエントリを書き込むようにストリームを設定する。
このメソッドは 既に圧縮済みのエントリの場合は putNextEntryAlreadyCompressed(), 未だに圧縮されていない場合は putNextEntryNotYetCompressed() を呼び出す。 圧縮されているかの判定は、 header.getCompressedSize() header.getOriginalSize() header.getCRC() のどれか一つでも LhaHeader.UNKNOWN であれば未だに圧縮されていないとする。 |
void |
putNextEntryAlreadyCompressed(LhaHeader header)
既に圧縮済みのエントリを書きこむようにストリームを設定する。
圧縮済みなので、一時退避機構を経ずに直接出力先に出力される。 圧縮済みデータが正しい事は、呼び出し側が保証する事。 |
void |
putNextEntryNotYetCompressed(LhaHeader header)
未だに圧縮されていないエントリを書きこむようにストリームを設定する。
header に OriginalSize, CompressedSize, CRCが指定されていても無視される。 |
void |
write(byte[] buffer)
現在のエントリに bufferの内容を全て書き出す。
|
void |
write(byte[] buffer,
int index,
int length)
現在のエントリに bufferの indexから lengthバイトのデータを書き出す。
|
void |
write(int data)
現在のエントリに1バイトのデータを書きこむ。
|
public LhaOutputStream(java.io.OutputStream out)
out
- 圧縮データを出力するストリームLhaProperty.getProperties()
public LhaOutputStream(java.io.OutputStream out, java.util.Properties property)
out
- 圧縮データを出力するストリームproperty
- 各圧縮形式に対応した符号器の生成式等が含まれるプロパティLhaProperty
public LhaOutputStream(java.io.OutputStream out, java.io.RandomAccessFile file)
out
- 圧縮データを出力するストリームfile
- RandomAccessFile のインスタンス。LhaProperty.getProperties()
public LhaOutputStream(java.io.OutputStream out, java.io.RandomAccessFile file, java.util.Properties property)
out
- 圧縮データを出力するストリームfile
- RandomAccessFile のインスタンス。property
- 各圧縮形式に対応した符号器の生成式等が含まれるプロパティjava.io.UnsupportedEncodingException
- encode がサポートされない場合LhaProperty
public void write(int data) throws java.io.IOException
write
in class java.io.OutputStream
data
- 書きこむデータjava.io.IOException
- 入出力エラーが発生した場合。public void write(byte[] buffer) throws java.io.IOException
write
in class java.io.OutputStream
buffer
- 書き出すデータの入ったバイト配列java.io.IOException
- 入出力エラーが発生した場合。public void write(byte[] buffer, int index, int length) throws java.io.IOException
write
in class java.io.OutputStream
buffer
- 書き出すデータの入ったバイト配列index
- buffer内の書き出すべきデータの開始位置length
- データのバイト数java.io.IOException
- 入出力エラーが発生した場合。public void flush() throws java.io.IOException
flush
in interface java.io.Flushable
flush
in class java.io.OutputStream
java.io.IOException
- 入出力エラーが発生した場合PostLzssEncoder.flush()
,
LzssOutputStream.flush()
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.OutputStream
java.io.IOException
- 入出力エラーが発生した場合public void putNextEntry(LhaHeader header) throws java.io.IOException
header
- 書きこむエントリについての情報を持つ
LhaHeaderのインスタンス。java.io.IOException
- 入出力エラーが発生した場合public void putNextEntryAlreadyCompressed(LhaHeader header) throws java.io.IOException
header
- 書きこむエントリについての情報を持つ
LhaHeaderのインスタンス。java.io.IOException
- 入出力エラーが発生した場合java.lang.IllegalArgumentException
- public void putNextEntryNotYetCompressed(LhaHeader header) throws java.io.IOException
header
- 書きこむエントリについての情報を持つ
LhaHeaderのインスタンス。java.io.IOException
- 入出力エラーが発生した場合public void closeEntry() throws java.io.IOException
java.io.IOException
- 入出力エラーが発生した場合
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.