|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.littlesoft.data.Table<E>
jp.littlesoft.data.text.TextTable<E>
public class TextTable<E extends Serializable>
テキストデータ(CSV、固定長)を扱うためのテーブルクラス。
テキストデータに対して、以下の操作を行うことができます。
・テキストファイルを読み込み、Tableにデータを設定する。
・テキストデータ(String)を読み込み、Tableにデータを設定する。
・Tableのデータをテキストファイルとして保存する。
・Tableのデータをテキストデータ(String)として取得する。
■■■ CSVデータの入出力について ■■■
CSVデータを扱う場合、Schemaプロパティに以下の入出力形式を指定することができます。
指定しない場合は、全てデータとして入出力を行います。
1. jp.littlesoft.data.TextTable.Schema.SPECIFIED_NAME_AND_TYPE
・1行目[カラム名] + 2行目[カラムタイプ] + 3行目以降[データ]
2. jp.littlesoft.data.TextTable.Schema.SPECIFIED_NAME
・1行目[カラム名] + 2行目以降[データ]
3. jp.littlesoft.data.TextTable.Schema.ONLY_DATA
・1行目以降[データ](デフォルト)
なお、上記形式2、3を利用する場合は、以下の例2、例3のように、CSVデータの入出力前にカラムの追加処理を行う必要があります。
例1: 1行目がカラム名、2行目がカラムタイプ、3行目以降がデータのCSVファイルを読み込む場合。
TextTable text = new TextTable();
// テキストスキーマの設定
text.setSchema(TextTable.Schema.SPECIFIED_NAME_AND_TYPE);
// CSVファイルのロード
text.importTextFile("file:///c:/input_data.csv");
// CSVファイルのセーブ
text.exportTextFile("c:/output_data.csv");
例2: 1行目がカラム名、2行目以降がデータのCSVファイルを読み込む場合。
TextTable text = new TextTable();
// カラムの追加
text.addColumn("Column1", Column.Type.STRING);
text.addColumn("Column2", Column.Type.INT);
text.addColumn("Column3", Column.Type.DATE);
// テキストスキーマの設定
text.setSchema(TextTable.Schema.SPECIFIED_NAME);
// CSVファイルのロード
text.importTextFile("file:///c:/input_data.csv");
// CSVファイルのセーブ
text.exportTextFile("c:/output_data.csv");
例3: 1行目以降がデータのCSVファイルを読み込む場合。
TextTable text = new TextTable();
// カラムの追加
text.addColumn("Column1", Column.Type.STRING);
text.addColumn("Column2", Column.Type.INT);
text.addColumn("Column3", Column.Type.DATE);
// CSVファイルのロード
text.importTextFile("file:///c:/input_data.csv");
// CSVファイルのセーブ
text.exportTextFile("c:/output_data.csv");
なお、データ読み込みの際、CSVデータの項目数 > カラム数 である場合、
データの先頭からカラム数分のデータを読み込みます。(残りのデータは無視されます。)
また、読み込み時にCSVデータのある項目を読み飛ばすことはできません。
■■■ 固定長データの入出力について ■■■
レコード長が固定のデータを読み込むことができます。
各項目の長さは、Tableに追加したカラムに対して設定します。
データ読み込みの際、レコードの長さ > カラムの長さの合計 である場合、
データの先頭からカラムの長さの合計分のデータを読み込みます。(残りのデータは無視されます。)
また、読み込み時にレコードのある項目を読み飛ばすことはできません。
データ読み込みの際、カラムのデータ型が以下のものに関しては、
項目の前後半角スペースをトリミングしてTableにデータを設定します。
データ型: BYTE、SHORT、LONG、INT、FLOAT、DOUBLE、BOOLEAN、BIGDECIMAL、DATE、TIME、TIMESTAMP
日付型のデータを読み込む際は、適切なフォーマットパターンを設定してください。
数値型の場合でデータ出力時に左ゼロ詰めを行いたい場合は、フォーマットパターンを指定してください。
STRING型はカラムのTrimTypeプロパティの設定によりトリミングについての振る舞いが変化します。
ディフォルトではスペースのトリミングは行われません。
以下の形式を設定することで、データ出力時の項目に対するスペースの補完処理のタイプを指定することができます。
1.jp.littlesoft.ds.data.TextTable.PadType.LEFT
・スペースを左から詰める
2.jp.littlesoft.ds.data.TextTable.PadType.RIGHT
・スペースを右から詰める(デフォルト)
3.jp.littlesoft.ds.data.TextTable.PadType.NOT_ASSIGNED;
・なにもしない
例1:固定長データを読み込み、以下の設定で出力を行う場合。
・Column1のデータの右側をトリミングする。
・Column2に数値フォーマットパターン"0000000000"を設定し、左ゼロ詰めを行う
・Column3に日時フォーマットパターン"yyyy/MM"を設定する。
・補完処理(左詰)を設定する。
【入力データ】
Column1 | Column2 | Column3 |
あいうえお | 1234567 | 2002/09/17 |
あいうえお | 1234567 | 2002/09/17 |
あいうえお | 1234567 | 2002/09/17 |
Column1 | Column2 | Column3 |
あいうえお | 0001234567 | 2002/09 |
あいうえお | 0001234567 | 2002/09 |
あいうえお | 0001234567 | 2002/09 |
入れ子のクラスの概要 | |
---|---|
static class |
TextTable.HeaderType
ヘッダの種類を管理するクラス。 |
static class |
TextTable.PadType
補完の種類を管理するクラス。 |
static class |
TextTable.Schema
出力構成の種類を管理するクラス。 |
static class |
TextTable.Type
出力の種類を管理するクラス。 |
クラス jp.littlesoft.data.Table から継承された入れ子のクラス/インタフェース |
---|
Table.SortKey |
フィールドの概要 | |
---|---|
static int |
BUFFER_SIZE
export/importする際のバッファサイズです。 |
クラス jp.littlesoft.data.Table から継承されたフィールド |
---|
_params, $$, active, columns, entity, params |
コンストラクタの概要 | |
---|---|
TextTable()
TextRowSetクラスのコンストラクタ。 |
|
TextTable(TextTable.Type textType)
TextRowSetクラスのコンストラクタ。 |
メソッドの概要 | |
---|---|
boolean |
checkMoreRow(boolean toLast)
追加行が存在するかどうかを調べます. |
protected void |
doLoadData()
データのロードを行います。 |
void |
export(OutputStream out)
TextTableのデータをOutputStreamに出力する。 |
void |
export(Writer writer)
TextTableのデータをWriterに出力する。 |
void |
exportTextFile(String fileName)
TextTableのデータをテキストファイルとして保存します。 |
String |
exportTextString()
TextTableのデータをテキストデータとして取得します。 |
char |
getDelimiter()
区切り文字を取得します。 |
String |
getEncoding()
エンコーディングを取得します。 |
String[] |
getExportColumns()
出力するカラム名配列を取得します。 |
TextTable.HeaderType |
getHeaderType()
CSVデータ出力時に出力するヘッダタイプを取得します。 |
String |
getLineSeparator()
改行コードを取得します。 |
TextTable.PadType |
getPadType()
文字列の補完処理のタイプを取得します。 |
char |
getQuote()
クォート文字を取得します。 |
TextTable.Schema |
getSchema()
CSVデータ入出力時のテキストスキーマを取得します。 |
TextTable.Type |
getType()
テキストタイプ(CSVまたは固定長テキスト)を取得します。 |
void |
importTextFile(InputStream inputStream)
テキストファイルを読み込み、TextTableにデータをセットします。 |
void |
importTextFile(String fileURL)
テキストファイルを読み込み、TextTableにデータをセットします。 |
void |
importTextString(String data)
テキストデータを読み込み、TextTableにデータをセットします。 |
protected void |
internalOnActivate()
アクティブ時の内部設定. |
boolean |
isQuoteInExport()
CSVデータ出力時に、クォート文字を出力するかどうかのフラグを取得します。 |
void |
setDelimiter(char delimiter)
区切り文字を設定します。 |
void |
setEncoding(String encoding)
エンコーディングを設定します。 |
void |
setExportColumns(String[] exportFieldNames)
出力するカラム名配列を設定します。 |
void |
setHeaderType(TextTable.HeaderType headerType)
CSVデータ出力時に出力するヘッダタイプを指定します。 |
void |
setLineSeparator(String lineSeparator)
改行コードを設定します。 |
void |
setPadType(TextTable.PadType textPadType)
文字列の補完処理のタイプを設定するします。 |
void |
setQuote(char quote)
クォート文字を設定します。 |
void |
setQuoteInExport(boolean quoteInExport)
CSVデータ出力時に、クォート文字を出力するかどうかを設定します。 |
void |
setSchema(TextTable.Schema textSchema)
CSVデータ入出力時のテキストスキーマを設定します。 |
void |
setType(TextTable.Type textType)
テキストタイプ(CSVまたは固定長テキスト)を設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static int BUFFER_SIZE
コンストラクタの詳細 |
---|
public TextTable()
public TextTable(TextTable.Type textType)
textType
- テキストタイプ(CSVまたは固定長テキスト)メソッドの詳細 |
---|
public void setType(TextTable.Type textType)
textType
- テキストタイプpublic TextTable.Type getType()
public void setPadType(TextTable.PadType textPadType)
textPadType
- 補完処理のタイプTextTable.PadType
public TextTable.PadType getPadType()
TextTable.PadType
public void setSchema(TextTable.Schema textSchema)
textSchema
- テキストスキーマTextTable.Schema
public TextTable.Schema getSchema()
TextTable.Schema
public void setDelimiter(char delimiter)
delimiter
- 区切り文字 デフォルト値:カンマ[,]public char getDelimiter()
public void setQuote(char quote)
quote
- クォート文字 デフォルト値:ダブルクォート["]public char getQuote()
public void setQuoteInExport(boolean quoteInExport)
quoteInExport
- True:クォート文字を出力する、False:出力しないpublic boolean isQuoteInExport()
public void setHeaderType(TextTable.HeaderType headerType)
headerType
- HeaderType.COLUMN_NAME:カラム名を出力する。 HeaderType.DATA_FIELD_CAPTION:キャプション出力する。TextTable.HeaderType
public TextTable.HeaderType getHeaderType()
TextTable.HeaderType
public void setLineSeparator(String lineSeparator)
lineSeparator
- 改行コード デフォルト値:システムの改行コードpublic String getLineSeparator()
public void setEncoding(String encoding)
encoding
- エンコーディングpublic String getEncoding()
public void importTextFile(String fileURL) throws TextException
fileURL
- ファイルのURL
TextException
- 例外発生時public void importTextString(String data) throws TextException
data
- テキストデータ
TextException
- 例外発生時public void importTextFile(InputStream inputStream) throws TextException
inputStream
- テキストファイルから取得したInputStream
TextException
- 例外発生時public void exportTextFile(String fileName) throws TextException
fileName
- ファイル名
TextException
- 例外発生時public String exportTextString() throws TextException
TextException
- 例外発生時public void export(OutputStream out) throws TextException
out
- 出力先のOutputStreamオブジェクト
TextException
public void export(Writer writer) throws TextException
writer
- 出力先のWriterオブジェクト
TextException
protected void internalOnActivate() throws DataException
Table<E extends Serializable>
内の internalOnActivate
jp.littlesoft.data.DataException
- エラー発生時
DataException
public boolean checkMoreRow(boolean toLast) throws DataException
Table<E extends Serializable>
内の checkMoreRow
toLast
- True:最終行まで調べる、False:調べない
jp.littlesoft.data.DataException
- 例外発生時
DataException
- 例外発生時protected void doLoadData() throws DataException
Table
の記述:
Table<E extends Serializable>
内の doLoadData
DataException
- 例外発生時Table.doLoadData()
public void setExportColumns(String[] exportFieldNames)
exportFieldNames
- 出力するカラムデータのカラム名配列public String[] getExportColumns()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |