LHA Library for Java

jp.gr.java_conf.dangan.util.lha
Class LhaFile

java.lang.Object
  extended by jp.gr.java_conf.dangan.util.lha.LhaFile

public class LhaFile
extends java.lang.Object

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]
     ソース整備
     タブ廃止
     ライセンス文の修正

 

Version:
$Revision: 1.1 $
Author:
$Author: dangan $

Constructor Summary
LhaFile(java.io.File filename)
          filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。
LhaFile(java.io.File filename, java.util.Properties property)
          filename で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
LhaFile(java.io.RandomAccessFile file)
          file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。
LhaFile(java.io.RandomAccessFile file, boolean rescueMode)
          file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。
LhaFile(java.io.RandomAccessFile file, java.util.Properties property)
          file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
LhaFile(java.io.RandomAccessFile file, java.util.Properties property, boolean rescueMode)
          file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
LhaFile(java.lang.String filename)
          filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。
LhaFile(java.lang.String filename, java.util.Properties property)
          filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。
 
Method Summary
 void close()
          この LHA書庫ファイルを閉じる。 その際、このLhaFileが発行した全ての InputStreamは強制的に閉じられる。
 java.util.Enumeration entries()
          この LhaFile 内のエントリの LhaHeader の列挙子を得る。
 LhaHeader[] getEntries()
          ファイル内のエントリを列挙した配列を得る。
 java.io.InputStream getInputStream(LhaHeader header)
          header で指定されたエントリの 内容を解凍しながら読みこむ入力ストリームを得る。
 java.io.InputStream getInputStream(java.lang.String name)
          nameで指定された名前を持つエントリの 内容を解凍しながら読みこむ入力ストリームを得る。
 java.io.InputStream getInputStreamWithoutExtract(LhaHeader header)
          headerで指定されたエントリの内容を 解凍せずに読みこむ入力ストリームを返す。
 java.io.InputStream getInputStreamWithoutExtract(java.lang.String name)
          nameで指定された名前を持つエントリの 内容を解凍せずに読みこむ入力ストリームを返す。
 int size()
          この LhaFile 内のエントリの数を得る。
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LhaFile

public LhaFile(java.lang.String filename)
        throws java.io.IOException
filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。

Parameters:
filename - LHA書庫ファイルの名前
Throws:
java.io.IOException - 入出力エラーが発生した場合
java.io.FileNotFoundException - ファイルが見つからない場合
java.lang.SecurityException - セキュリティマネージャがファイルの読み込みを許さない場合
See Also:
LhaProperty.getProperties()

LhaFile

public LhaFile(java.lang.String filename,
               java.util.Properties property)
        throws java.io.IOException
filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。

Parameters:
filename - LHA書庫ファイルの名前
property - 各圧縮形式に対応した復号器の生成式等が含まれるプロパティ
Throws:
java.io.IOException - 入出力エラーが発生した場合
java.io.FileNotFoundException - ファイルが見つからない場合
java.io.UnsupportedEncodingException - property.getProperty( "lha.encoding" ) で得られた エンコーディング名がサポートされない場合
java.lang.SecurityException - セキュリティマネージャがファイルの読み込みを許さない場合
See Also:
LhaProperty

LhaFile

public LhaFile(java.io.File filename)
        throws java.io.IOException
filename で指定されたファイルから書庫データを読みこむLhaFileを構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。

Parameters:
filename - LHA書庫ファイル
Throws:
java.io.IOException - 入出力エラーが発生した場合
java.io.FileNotFoundException - ファイルが見つからない場合
java.lang.SecurityException - セキュリティマネージャがファイルの読み込みを許さない場合
See Also:
LhaProperty.getProperties()

LhaFile

public LhaFile(java.io.File filename,
               java.util.Properties property)
        throws java.io.IOException
filename で指定されたファイルから書庫データを読みこむ LhaFile を構築する。

Parameters:
filename - LHA書庫ファイル
property - 各圧縮形式に対応した復号器の生成式等が含まれるプロパティ
Throws:
java.io.IOException - 入出力エラーが発生した場合
java.io.FileNotFoundException - ファイルが見つからない場合
java.io.UnsupportedEncodingException - property.getProperty( "lha.encoding" ) で得られた エンコーディング名がサポートされない場合
java.lang.SecurityException - セキュリティマネージャがファイルの読み込みを許さない場合
See Also:
LhaProperty

LhaFile

public LhaFile(java.io.RandomAccessFile file)
        throws java.io.IOException
file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。

Parameters:
file - LHA書庫ファイル
Throws:
java.io.IOException - 入出力エラーが発生した場合
java.io.FileNotFoundException - ファイルが見つからない場合
java.lang.SecurityException - セキュリティマネージャがファイルの読み込みを許さない場合
See Also:
LhaProperty.getProperties()

LhaFile

public LhaFile(java.io.RandomAccessFile file,
               boolean rescueMode)
        throws java.io.IOException
file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。
各圧縮形式に対応した復号器の生成式等を持つプロパティには LhaProperty.getProperties() で得られたプロパティが使用される。

Parameters:
file - LHA書庫ファイル
rescueMode - true にすると壊れた書庫のデータを 復旧するための復旧モードでエントリを検索する。
Throws:
java.io.IOException - 入出力エラーが発生した場合
java.io.FileNotFoundException - ファイルが見つからない場合
java.lang.SecurityException - セキュリティマネージャがファイルの読み込みを許さない場合
See Also:
LhaProperty.getProperties()

LhaFile

public LhaFile(java.io.RandomAccessFile file,
               java.util.Properties property)
        throws java.io.IOException
file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。

Parameters:
file - LHA書庫ファイル
property - 各圧縮形式に対応した復号器の生成式等が含まれるプロパティ
Throws:
java.io.IOException - 入出力エラーが発生した場合
java.io.FileNotFoundException - ファイルが見つからない場合
java.lang.SecurityException - セキュリティマネージャがファイルの読み込みを許さない場合
See Also:
LhaProperty

LhaFile

public LhaFile(java.io.RandomAccessFile file,
               java.util.Properties property,
               boolean rescueMode)
        throws java.io.IOException
file で指定されたファイルから書庫データを読みこむ LhaFile を構築する。

Parameters:
file - LHA書庫ファイル
property - 各圧縮形式に対応した復号器の生成式等が含まれるプロパティ
rescueMode - true にすると壊れた書庫のデータを 復旧するための復旧モードでエントリを検索する。
Throws:
java.io.IOException - 入出力エラーが発生した場合
java.io.FileNotFoundException - ファイルが見つからない場合
java.lang.SecurityException - セキュリティマネージャがファイルの読み込みを許さない場合
See Also:
LhaProperty
Method Detail

getInputStream

public java.io.InputStream getInputStream(LhaHeader header)
header で指定されたエントリの 内容を解凍しながら読みこむ入力ストリームを得る。

Parameters:
header - ヘッダ
Returns:
headerで指定されたヘッダを持つエントリの 内容を読みこむ入力ストリーム。
エントリが見つからない場合は null。

getInputStream

public java.io.InputStream getInputStream(java.lang.String name)
nameで指定された名前を持つエントリの 内容を解凍しながら読みこむ入力ストリームを得る。

Parameters:
name - エントリの名前
Returns:
nameで指定された名前を持つエントリの 内容を解凍しながら読みこむ入力ストリーム。
エントリが見つからない場合は null。

getInputStreamWithoutExtract

public java.io.InputStream getInputStreamWithoutExtract(LhaHeader header)
headerで指定されたエントリの内容を 解凍せずに読みこむ入力ストリームを返す。

Parameters:
header - ヘッダ
Returns:
headerで指定されたエントリの内容を 解凍せずに読みこむ入力ストリーム。
エントリが見つからない場合は null。

getInputStreamWithoutExtract

public java.io.InputStream getInputStreamWithoutExtract(java.lang.String name)
nameで指定された名前を持つエントリの 内容を解凍せずに読みこむ入力ストリームを返す。

Parameters:
name - エントリの名前
Returns:
nameで指定された名前を持つエントリの 内容を解凍せずに読みこむ入力ストリーム。
エントリが見つからない場合は null。

size

public int size()
この LhaFile 内のエントリの数を得る。

Returns:
ファイル内のエントリの数

entries

public java.util.Enumeration entries()
この LhaFile 内のエントリの LhaHeader の列挙子を得る。

Returns:
LhaHeader の列挙子
Throws:
java.lang.IllegalStateException - LhaFile が close() で閉じられている場合。

getEntries

public LhaHeader[] getEntries()
ファイル内のエントリを列挙した配列を得る。

Returns:
ファイル内のエントリを列挙した配列

close

public void close()
           throws java.io.IOException
この LHA書庫ファイルを閉じる。 その際、このLhaFileが発行した全ての InputStreamは強制的に閉じられる。

Throws:
java.io.IOException - 入出力エラーが発生した場合

LHA Library for Java

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.