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
ConstructorDescriptionFileRecordWriter
(File dataFile, File layoutFile) 書き込むデータファイルのファイル名を指定するコンストラクタ。 "input"論理ベースパス配下に存在する当該のファイル名のファイルにデータを書き出す。FileRecordWriter
(File dataFile, File layoutFile, int bufferSize) 書き込むデータファイルのベースパス論理名およびファイル名を指定するコンストラクタ。 指定されたベースパス配下に存在する当該のファイル名のファイルにデータを書き出す。FileRecordWriter
(File dataFile, LayoutDefinition layoutDefinition) コンストラクタ。
フォーマット定義ファイルを読まずに、LayoutDefinition
を直接指定する。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
書き込み先のファイルストリームを閉じる。protected void
出力ストリームを生成する。protected OutputStream
createOutputStream
(File dataFile, int bufferSize) 出力ストリームを生成する。protected FileRecordWriter
レコードタイプを指定してレコードを出力する。protected FileRecordWriter
doWrite
(DataRecordFormatter formatter, String recordType, Map<String, ?> record) レコードタイプを指定してレコードを出力する。protected void
フォーマット定義を読み込み、出力先ストリームを作成する。protected void
initialize
(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:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-