お決まりコードを設計書から自動生成するblancoCsvCoolなEclipseプラグイン(18)(3/3 ページ)

» 2007年06月06日 00時00分 公開
[菅原康友NTTデータ 基盤システム事業本部]
前のページへ 1|2|3       

自動生成されたコードの利用

 では、最後に生成したコードを使い、CSVファイルの入出力を行ってみましょう。

 以下にCSVファイルの入力クラス、出力クラスのサンプルを示します。サンプルを実行し、CSVファイルの読み込み処理(Eclipseのコンソールを確認)、書き込み処理(CSVファイルが更新されていることを確認)ができれば、動作確認完了です。

 サンプルの動作確認の際は、sample.csvを作成し、プロジェクトのフォルダ直下に配置してください。

7777777,鈴木一郎,東京都,1234,23,2006/12/01
sample.csv
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行)ずつ入出力を行います。ArrayListarrayを利用して、一括処理する場合、DB内の大量データを一括処理する際に大量のメモリが必要になりますが、1レコードずつ処理すれば、テーブルの1レコードずつCSVファイルへ書き出していけばよいので、少ないリソースで処理できます。

 このように、現場での開発ノウハウを生かしたソースコードが生成されるため、製造のコスト削減だけでなく、品質の向上が期待できます。

blanco Frameworkで開発の効率化を行おう

 本稿では、CSVファイルの読み書きを行うコードを生成するblancoCsvを紹介しました。blanco Frameworkシリーズでは、ほかにもさまざまなコードを生成するプラグインを提供しており、これらのプラグイン/ツールを利用することにより開発を効率化できます。興味がある方はぜひblanco Frameworkのほかのプラグインも利用してみてください。blanco Frameworkシリーズの一覧は、以下のドキュメントをご覧ください。

著者紹介

菅原 康友(すがわら やすとも)

2002年 NTTデータ入社。レガシーシステムの方式設計を経験後、2005年より現在の部署に異動し、Javaと出会う。

日ごろは社内フレームワークの開発や、方式支援業務に携わっている。



前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。