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