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