Package nablarch.fw.reader
Class FileDataReader
java.lang.Object
nablarch.fw.reader.FileDataReader
- All Implemented Interfaces:
DataReader<DataRecord>
- Direct Known Subclasses:
ValidatableFileDataReader
ファイルデータを1レコードづつ読み込み、
読み込んだフィールドの内容を
DataRecord
にマッピングして返却するデータリーダ。
実際のレコード読み込み処理は、FileRecordReader
に委譲する。
このクラスを使用するにあたって設定が必須となるプロパティの実装例を下記に示す。
FileDataReader reader = new FileDataReader()
//フォーマット定義ファイルのベースパス論理名とフォーマット定義ファイル名(拡張子無し)を設定する。
.setLayoutFile("format", "formatFile")
//データファイルベースパス論理名とデータファイル名(拡張子無し)を設定する。
.setDataFile("input", "dataFile");
このクラスは読み込み対象のファイルやフォーマット定義ファイルが存在しない場合には例外を送出する。
読み込み対象のファイルが空(0バイト)の場合は、例外の送出は行わない。- Author:
- Masato Inoue
-
Nested Class Summary
Nested classes/interfaces inherited from interface nablarch.fw.DataReader
DataReader.NoMoreRecord
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close
(ExecutionContext ctx) 指定されたデータファイルに対するストリームを閉じ、ファイルハンドラを開放する。protected FileRecordReader
FileRecordReader
オブジェクトを生成する。protected FileRecordReader
FileRecordReader
オブジェクトを取得する。boolean
hasNext
(ExecutionContext ctx) 次に読み込むデータが存在するかどうかを返却する。read
(ExecutionContext ctx) データファイルを1レコードづつ読み込む。setBufferSize
(int bufferSize) レコード読み込み時に使用するバッファのサイズを設定する。setDataFile
(String fileName) データファイルのファイル名を設定する。setDataFile
(String basePathName, String fileName) データファイルのベースパス論理名およびファイル名を設定する。protected void
setFileReader
(FileRecordReader fileReader) FileRecordReader
オブジェクトを設定する。setLayoutFile
(String layoutFile) 拡張子を除いた、フォーマット定義ファイルのファイル名を設定する。setLayoutFile
(String basePathName, String fileName) フォーマット定義ファイルのベースパス論理名および拡張子を除いたファイル名を設定する。
-
Constructor Details
-
FileDataReader
FileDataReader
オブジェクトを生成する。
-
-
Method Details
-
read
データファイルを1レコードづつ読み込む。 読み込んだ際のレコード番号を実行コンテキストに格納する。- Specified by:
read
in interfaceDataReader<DataRecord>
- Parameters:
ctx
- 実行コンテキスト- Returns:
- 1レコード分のデータレコード(読み込むデータがなかった場合は
null
)
-
hasNext
次に読み込むデータが存在するかどうかを返却する。- Specified by:
hasNext
in interfaceDataReader<DataRecord>
- Parameters:
ctx
- 実行コンテキスト- Returns:
- 読み込むデータが存在する場合は
true
-
close
指定されたデータファイルに対するストリームを閉じ、ファイルハンドラを開放する。 このリーダを閉じる前に、読み込んだファイルの最終レコードのレコード番号を実行コンテキストに設定する。 このリーダが既に閉じられている場合は何もしない。- Specified by:
close
in interfaceDataReader<DataRecord>
- Parameters:
ctx
- 実行コンテキスト
-
setLayoutFile
拡張子を除いた、フォーマット定義ファイルのファイル名を設定する。 "format"という論理名のベースパス配下に存在する当該ファイルがフォーマット定義ファイルとして使用される。- Parameters:
layoutFile
- フォーマット定義ファイル名- Returns:
- このオブジェクト自体
-
setLayoutFile
@Published(tag="architect") public FileDataReader setLayoutFile(String basePathName, String fileName) フォーマット定義ファイルのベースパス論理名および拡張子を除いたファイル名を設定する。 設定した論理名のペースパス配下に存在する当該ファイルがフォーマット定義ファイルとして使用される。- Parameters:
basePathName
- ベースパス論理名fileName
- フォーマット定義ファイル名- Returns:
- このオブジェクト自体
-
setDataFile
データファイルのファイル名を設定する。 "input"という論理名のベースパス配下に存在する当該ファイルがデータファイルとして使用される。- Parameters:
fileName
- データファイル名- Returns:
- このオブジェクト自体
-
setDataFile
データファイルのベースパス論理名およびファイル名を設定する。 設定したベースパス配下に存在する当該のファイルがデータファイルとして使用される。- Parameters:
basePathName
- ベースパス論理名fileName
- データファイル名- Returns:
- このオブジェクト自体
-
setBufferSize
レコード読み込み時に使用するバッファのサイズを設定する。 デフォルトでは8KBのバッファを使用する。- Parameters:
bufferSize
- レコード読み込み時に使用するバッファのサイズ- Returns:
- このオブジェクト自体
-
createFileRecordReader
FileRecordReader
オブジェクトを生成する。- Returns:
- FileRecordReaderオブジェクト
- Throws:
IllegalStateException
- 必須であるプロパティが設定されていない場合
-
getFileReader
FileRecordReader
オブジェクトを取得する。- Returns:
- FileRecordReaderオブジェクト(FileRecordReaderオブジェクトが生成されていない場合は
null
)
-
setFileReader
FileRecordReader
オブジェクトを設定する。- Parameters:
fileReader
-FileRecordReader
オブジェクト
-