@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.Closeableclose in interface java.lang.AutoCloseable