Package nablarch.core.dataformat
Class FileRecordWriter
java.lang.Object
nablarch.core.dataformat.FileRecordWriter
- All Implemented Interfaces:
Closeable,AutoCloseable
データレコードをファイルに出力するクラス。
出力形式のフォーマット定義ファイルと出力先ファイルを指定する。 明示的に指定しなかった場合のフォーマット定義ファイルの参照ディレクトリは、 "format"論理ベースパスに設定されたパスとなる。 同様に、データファイルの出力先は"output"論理ベースパスに設定されたパスとなる。
アプリケーションから、本クラスを直接使用することは許可しない。
本クラスはスレッドセーフな実装にはなっていないので、呼び出し元で同期化の制御を行うこと。
- Author:
- Iwauo Tajima
-
Constructor Summary
ConstructorsConstructorDescriptionFileRecordWriter(File dataFile, File layoutFile) 書き込むデータファイルのファイル名を指定するコンストラクタ。 "input"論理ベースパス配下に存在する当該のファイル名のファイルにデータを書き出す。FileRecordWriter(File dataFile, File layoutFile, int bufferSize) 書き込むデータファイルのベースパス論理名およびファイル名を指定するコンストラクタ。 指定されたベースパス配下に存在する当該のファイル名のファイルにデータを書き出す。FileRecordWriter(File dataFile, LayoutDefinition layoutDefinition) コンストラクタ。
フォーマット定義ファイルを読まずに、LayoutDefinitionを直接指定する。 -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()書き込み先のファイルストリームを閉じる。protected void出力ストリームを生成する。protected OutputStreamcreateOutputStream(File dataFile, int bufferSize) 出力ストリームを生成する。protected FileRecordWriterレコードタイプを指定してレコードを出力する。protected FileRecordWriterdoWrite(DataRecordFormatter formatter, String recordType, Map<String, ?> record) レコードタイプを指定してレコードを出力する。protected voidフォーマット定義を読み込み、出力先ストリームを作成する。protected voidinitialize(DataRecordFormatter formatter) 初期化処理を行う。
出力ストリームを作成し、フォーマッタに設定する。レコードタイプを明示的に指定してレコードを出力する。指定されたレコードデータファイルに出力する。 本メソッドでは、データファイルのストリームに対して書き込みを行うが、 フラッシュは行わず、ストリームも開いたまま維持される。 そのため、try-finally句で囲うなどして、書き込み終了後に 必ずclose()メソッドを実行する必要がある。 なお、本メソッドの処理中に例外が発生した場合、データファイルのストリームは 自動的にクローズされる。 (クローズメソッドを複数回呼んだとしても特に問題は発生しない。)
-
Constructor Details
-
FileRecordWriter
書き込むデータファイルのファイル名を指定するコンストラクタ。 "input"論理ベースパス配下に存在する当該のファイル名のファイルにデータを書き出す。- Parameters:
dataFile- データファイルlayoutFile- フォーマット定義ファイル
-
FileRecordWriter
書き込むデータファイルのベースパス論理名およびファイル名を指定するコンストラクタ。 指定されたベースパス配下に存在する当該のファイル名のファイルにデータを書き出す。- Parameters:
dataFile- データファイルlayoutFile- フォーマット定義ファイルbufferSize- ファイル読み込みの際に使用するバッファのサイズ
-
FileRecordWriter
コンストラクタ。
フォーマット定義ファイルを読まずに、LayoutDefinitionを直接指定する。- Parameters:
dataFile- データファイルlayoutDefinition- フォーマット定義
-
-
Method Details
-
initialize
protected void initialize()フォーマット定義を読み込み、出力先ストリームを作成する。 -
initialize
初期化処理を行う。
出力ストリームを作成し、フォーマッタに設定する。- Parameters:
formatter- フォーマッタ
-
write
指定されたレコードデータファイルに出力する。 本メソッドでは、データファイルのストリームに対して書き込みを行うが、 フラッシュは行わず、ストリームも開いたまま維持される。 そのため、try-finally句で囲うなどして、書き込み終了後に 必ずclose()メソッドを実行する必要がある。 なお、本メソッドの処理中に例外が発生した場合、データファイルのストリームは 自動的にクローズされる。 (クローズメソッドを複数回呼んだとしても特に問題は発生しない。)- Parameters:
record- ファイルに出力するレコード- Returns:
- このオブジェクト自体
-
write
レコードタイプを明示的に指定してレコードを出力する。- Parameters:
recordType- 出力するレコードのレコードタイプrecord- 出力するレコード- Returns:
- このオブジェクト自体
-
doWrite
レコードタイプを指定してレコードを出力する。- Parameters:
recordType- 出力するレコードのレコードタイプrecord- 出力するレコード- Returns:
- このオブジェクト自体
-
doWrite
protected FileRecordWriter doWrite(DataRecordFormatter formatter, String recordType, Map<String, ?> record) レコードタイプを指定してレコードを出力する。- Parameters:
formatter- フォーマッタrecordType- 出力するレコードのレコードタイプrecord- 出力するレコード- Returns:
- このオブジェクト自体
-
createOutputStream
protected void createOutputStream()出力ストリームを生成する。 -
createOutputStream
出力ストリームを生成する。- Parameters:
dataFile- 出力先ファイルbufferSize- バッファサイズ- Returns:
- 出力ストリーム
-
close
public void close()書き込み先のファイルストリームを閉じる。- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-