3.2 CsvEngineクラス
CsvEngineクラス
ここでは、CSV出力機能で使用するAPIに関して説明します。ここで説明する内容は、CSV出力機能に関するAPIのみです。本機能はレイアウトデータをCSVファイル形式で出力するためのものです。
CsvEngineコンストラクタの種類
CsvEngineクラスのコンストラクタには次の3種類があります。- 指定したファイルにCSVデータを出力する。
- 指定した複数のファイルにCSVデータを出力する。
- 文字ストリームにCSVデータを出力する。
CsvEngineコンストラクタ
1CSVデータを指定したファイルに出力
【機能】
指定したファイル名にCSVデータを出力する。
【構文】
public CsvEngine(String filename) throws java.io.IOException;
【引数】
引数名 | 型 | 内容 |
---|---|---|
filename | String | CSVファイル名 |
【備考】
filename内の"${base-dir}"文字列の置換は適用されます。ファイルの作成エラーが発生した場合はIOExceptionがthrowされます。
2複数ファイルにCSV出力
【機能】
指定した複数のファイル名に分割されたCSVデータを出力する。
【構文】
public CsvEngine(String filenamePrefix, String filenameSuffix)
throws java.io.IOException;
【引数】
引数名 | 型 | 内容 |
---|---|---|
filenamePrefix | String | CSVファイル名(前半) |
filenameSuffix | String | CSVファイル名(後半) |
【備考】
- 複数ページに分割されるためファイル名の前半(filenamePrefix)と後半(filenameSuffix)の間にページ番号が挿入されます。ページの番号は'0'から開始します。
- filename内の"${base-dir}"文字列の置換は適用されます。
- ファイルの作成エラーが発生した場合はIOExceptionがthrowされます。
3文字ストリームにCSV出力
【機能】
文字ストリームにCSVデータを出力する。
【構文】
public CsvEngine(java.io.Writer writer);
【引数】
引数名 | 型 | 内容 |
---|---|---|
writer | Writer | 文字ストリーム |
【備考】
- 本機能はファイルに出力せず、文字ストリームにデータを流し込むものです。
- 文字エンコーディングの指定内容はWriter作成時に任意に設定します。
CsvEngineクラスは、互換性を保つためPDFEngineクラスが提供するAPIが用意されていますが、基本的にCSVファイルに反映されません。
メソッドを用いたオプション設定
CsvEngineクラスのインスタンス作成直後に(XMLエンジンインスタンスに渡す前に)メソッドを呼び出すことによりオプション的な動作設定が可能です。
1出力する文字エンコーディングの指定
【機能】
指定された文字エンコーディングでCSVデータを出力します。指定された文字エンコーディングでエラーが発生した場合Exceptionが発生しますが、このメソッドではthrowされずに、実際に出力するタイミング(例えばclose()時など)でthrowされます。このメソッドで文字エンコーディングの設定を行わない場合、実行環境のデフォルトにてエンコードされ、CSVに出力されます。コンストラクタがCsvEngine(Writer writer)の場合は無視されます。
【構文】
public void setCharacterEncoding(String encoding);
【引数】
引数名 | 型 | 内容 |
---|---|---|
encoding | String | 文字エンコーディングの指定内容 ※ |
※文字エンコーディングを指定する際の指定方法としてjava.io.OutputStreamWriterのコンストラクタOutputStreamWriter(OutputStream out, String charsetName)のcharsetNameとして指定する値と同じものが指定できます。
【戻り値】
void型
2CSVフィールドの区切り文字(改行コード)を設定
【機能】
CSVフィールドの区切り文字(改行コード)を設定します。通常のWindowsの改行コードはCR+LF(Linux/UNIXはLF)です。使用環境によって改行コードを変更することができます。デフォルトはOSに関係なくCR+LFに設定されます。【構文】
public void setLineSeparator(String separator);
【引数】
引数名 | 型 | 内容 |
---|---|---|
separator | String | 改行コード |
【戻り値】
void型