|
LHA Library for Java | ||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjava.io.OutputStream
jp.gr.java_conf.dangan.util.lha.LhaRetainedOutputStream
接続された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] ソース整備 タブ廃止 ライセンス文の修正
コンストラクタの概要 | |
LhaRetainedOutputStream(File filename)
filename のファイルに 圧縮データを出力するOutputStreamを構築する。 |
|
LhaRetainedOutputStream(File filename,
Properties property)
filename のファイルに 圧縮データを出力するOutputStreamを構築する。 |
|
LhaRetainedOutputStream(RandomAccessFile file)
fileに 圧縮データを出力するOutputStreamを構築する。 |
|
LhaRetainedOutputStream(RandomAccessFile file,
Properties property)
fileに 圧縮データを出力するOutputStreamを構築する。 |
|
LhaRetainedOutputStream(String filename)
filename のファイルに 圧縮データを出力するOutputStreamを構築する。 |
|
LhaRetainedOutputStream(String filename,
Properties property)
filename のファイルに 圧縮データを出力するOutputStreamを構築する。 |
メソッドの概要 | |
void |
close()
出力先に全てのデータを出力し、ストリームを閉じる。 |
void |
closeEntry()
現在出力中のエントリを閉じ、次のエントリが出力可能な状態にする。 |
void |
flush()
現在書き込み中のエントリのデータを強制的に出力先に書き出す。 |
void |
putNextEntry(LhaHeader header)
新しいエントリを書き込むようにストリームを設定する。 |
void |
putNextEntryAlreadyCompressed(LhaHeader header)
既に圧縮済みのエントリを書きこむようにストリームを設定する。 |
void |
putNextEntryNotYetCompressed(LhaHeader header)
未だに圧縮されていないエントリを書きこむようにストリームを設定する。 |
void |
write(byte[] buffer)
現在のエントリに bufferの内容を全て書き出す。 |
void |
write(byte[] buffer,
int index,
int length)
現在のエントリに bufferの indexから lengthバイトのデータを書き出す。 |
void |
write(int data)
現在のエントリに1バイトのデータを書きこむ。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public LhaRetainedOutputStream(String filename) throws FileNotFoundException
filename
- 圧縮データを書きこむファイルの名前
FileNotFoundException
- filename で与えられたファイルが見つからない場合。
SecurityException
- セキュリティマネージャがファイルへのアクセスを許さない場合。LhaProperty.getProperties()
public LhaRetainedOutputStream(String filename, Properties property) throws FileNotFoundException
filename
- 圧縮データを書きこむファイルの名前property
- 各圧縮形式に対応した符号器の生成式等が含まれるプロパティ
FileNotFoundException
- filename で与えられたファイルが見つからない場合。
SecurityException
- セキュリティマネージャがファイルへのアクセスを許さない場合。LhaProperty
public LhaRetainedOutputStream(File filename) throws IOException
filename
- 圧縮データを書きこむファイルの名前
FileNotFoundException
- filename で与えられたファイルが見つからない場合。
SecurityException
- セキュリティマネージャがファイルへのアクセスを許さない場合。
IOException
- JDK1.2 でコンパイルするためだけに存在する。LhaProperty.getProperties()
public LhaRetainedOutputStream(File filename, Properties property) throws IOException
filename
- 圧縮データを書きこむファイルの名前property
- 各圧縮形式に対応した符号器の生成式等が含まれるプロパティ
FileNotFoundException
- filename で与えられたファイルが見つからない場合。
SecurityException
- セキュリティマネージャがファイルへのアクセスを許さない場合。
IOException
- JDK1.2 でコンパイルするためだけに存在する。LhaProperty
public LhaRetainedOutputStream(RandomAccessFile file)
file
- RandomAccessFile のインスタンス。LhaProperty.getProperties()
public LhaRetainedOutputStream(RandomAccessFile file, Properties property)
file
- RandomAccessFile のインスタンス。property
- 各圧縮形式に対応した符号器の生成式等が含まれるプロパティLhaProperty
メソッドの詳細 |
public void write(int data) throws IOException
data
- 書きこむデータ
IOException
- 入出力エラーが発生した場合。public void write(byte[] buffer) throws IOException
buffer
- 書き出すデータの入ったバイト配列
IOException
- 入出力エラーが発生した場合。public void write(byte[] buffer, int index, int length) throws IOException
buffer
- 書き出すデータの入ったバイト配列index
- buffer内の書き出すべきデータの開始位置length
- データのバイト数
IOException
- 入出力エラーが発生した場合。public void flush() throws IOException
IOException
- 入出力エラーが発生した場合PostLzssEncoder.flush()
,
LzssOutputStream.flush()
public void close() throws IOException
IOException
- 入出力エラーが発生した場合public void putNextEntry(LhaHeader header) throws IOException
header
- 書きこむエントリについての情報を持つ
LhaHeaderのインスタンス。
IOException
- 入出力エラーが発生した場合
IllegalArgumentException
- header.getOriginalSize() が LhaHeader.UNKNOWN を返す場合public void putNextEntryAlreadyCompressed(LhaHeader header) throws IOException
header
- 書きこむエントリについての情報を持つ
LhaHeaderのインスタンス。
IOException
- 入出力エラーが発生した場合
IllegalArgumentException
- public void putNextEntryNotYetCompressed(LhaHeader header) throws IOException
header
- 書きこむエントリについての情報を持つ
LhaHeaderのインスタンス。
IOException
- 入出力エラーが発生した場合
IllegalArgumentException
- header.getOriginalSize() が LhaHeader.UNKNOWN を返す場合public void closeEntry() throws IOException
IOException
- 入出力エラーが発生した場合
|
LHA Library for Java | ||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |