自動生成されたコードの利用
では、最後に生成したコードを使い、CSVファイルの入出力を行ってみましょう。
以下にCSVファイルの入力クラス、出力クラスのサンプルを示します。サンプルを実行し、CSVファイルの読み込み処理(Eclipseのコンソールを確認)、書き込み処理(CSVファイルが更新されていることを確認)ができれば、動作確認完了です。
サンプルの動作確認の際は、sample.csvを作成し、プロジェクトのフォルダ直下に配置してください。
7777777,鈴木一郎,東京都,1234,23,2006/12/01
import java.io.*;
import java.text.SimpleDateFormat;
import myapp.csv.io.*;
import myapp.csv.record.SampleCsvRecord;
public class CsvRead {
public static void main(String[] args) {
SimpleDateFormat dateFormat
= new SimpleDateFormat("yyyy/MM/dd");
SampleCsvReader csvReader = null;
try {
// Sample.CSVを開く
BufferedReader reader = new BufferedReader(
new InputStreamReader(
new FileInputStream("sample.csv")));
// Sample.CSV読み取り用クラスを生成
csvReader = new SampleCsvReader(reader);
// ファイルを1行ずつ読み込む
for (;;) {
// 1行読み込む。
// 読み込む行が存在しない場合はnullを返す
SampleCsvRecord record = csvReader.readRecord();
// 読み込む行が存在しなかった場合は読み込みを終了
if (record == null) {
break;
}
// 結果の出力
// (blancoCsvで作成したレコードのgetterを利用)
System.out.println(
"[" + csvReader.getLineCounter() + "件目]");
System.out.println("顧客ID:"
+ record.getCustomerid());
System.out.println("氏名:" + record.getName());
System.out.println("住所:" + record.getAddress());
System.out.println("商品ID:"
+ record.getProductid());
System.out.println("個数:" + record.getNumber());
System.out.println("注文日:"
+ dateFormat.format(record.getOrderdate()));
}
}
}
}
import java.io.*;
import java.util.Date;
import myapp.csv.io.*;
import myapp.csv.record.SampleCsvRecord;
public class CsvWrite {
public static void main(String[] args) {
SampleCsvWriter csvWriter = null;
try {
// Sample.CSVを開く
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("sample.csv")));
// Sample.CSV書き込み用クラスを生成
csvWriter = new SampleCsvWriter(writer);
// 1行分のデータを作成
// (blancoCsvで作成したレコードのsetterを利用)
SampleCsvRecord record = new SampleCsvRecord();
record.setCustomerid(new Integer(12345678));
record.setName("山田太郎");
record.setAddress("大阪府");
record.setProductid(new Integer(9999));
record.setNumber(new Integer(14));
record.setOrderdate(new Date());
// 1行書き込む
csvWriter.writeRecord(record);
csvWriter.flush();
csvWriter.close();
} catch (BlancoCsvIOException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
サンプルをご覧になると分かるように、CSVファイルの1レコード(1行)ずつ入出力を行います。ArrayListやarrayを利用して、一括処理する場合、DB内の大量データを一括処理する際に大量のメモリが必要になりますが、1レコードずつ処理すれば、テーブルの1レコードずつCSVファイルへ書き出していけばよいので、少ないリソースで処理できます。
このように、現場での開発ノウハウを生かしたソースコードが生成されるため、製造のコスト削減だけでなく、品質の向上が期待できます。
blanco Frameworkで開発の効率化を行おう
本稿では、CSVファイルの読み書きを行うコードを生成するblancoCsvを紹介しました。blanco Frameworkシリーズでは、ほかにもさまざまなコードを生成するプラグインを提供しており、これらのプラグイン/ツールを利用することにより開発を効率化できます。興味がある方はぜひblanco Frameworkのほかのプラグインも利用してみてください。blanco Frameworkシリーズの一覧は、以下のドキュメントをご覧ください。
著者紹介
菅原 康友(すがわら やすとも)
2002年 NTTデータ入社。レガシーシステムの方式設計を経験後、2005年より現在の部署に異動し、Javaと出会う。
日ごろは社内フレームワークの開発や、方式支援業務に携わっている。
- これはすごい!?コード品質のカイゼン化プラグイン2種
- Mylyn&Tracでリズムに乗ってタスクを大掃除♪
- JavaScriptを書かずにAjaxを実現するjMaki
- Apache LDAP StudioでLDAPはもう怖くない
- ERダイアグラムを編集するAmaterasERDでDB設計
- Project Zeroでスクリプト+Ajaxのアジャイル開発
- お決まりコードを設計書から自動生成するblancoCsv
- EPFプラグインでらくらく開発プロセス管理!(実践編)
- EPFプラグインでらくらく開発プロセス管理!(入門編)
- バージョン管理に便利なSubversiveプラグイン
- 軽量なUMLプラグインAmaterasUML
- 簡単にFlashアプリを作成できるFlexBuilder 2
- 便利なプラグインの集大成MyEclipse
- ビルドを効率化するEclipseプラグイン
- スクリプト言語をサポートするEclipseプラグイン
- データベースの利用に便利なEclipseプラグイン
- RSSを表示できるEclipseプラグイン
- プログラミングにあると便利なプラグイン
- サンプルコードの入手をサポートするプラグイン
- 正規表現の入力・テストを行うプラグイン
- Webアプリケーション開発を支援するプラグイン
- データベース開発を支援するプラグイン
- ソフトウェアの品質向上を支援するプラグイン
- Javaのプロパティファイルを編集できるプラグイン
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- コードのスケルトンを自動生成する
Java TIPS - 規約に沿ったソースコードを自動生成する
Java TIPS - JavaとOSSの最新事情を探る OSC 2007
オープンソース イベントレポート - できるだけコードを書かないという発想
ソースコード自動生成技術の最新状況 - Web 2.0アプリ自動生成ツール“Tuigwaa”
ユーザー自らDB連動型のWebアプリを作る