自動生成されたコードの利用
では、最後に生成したコードを使い、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アプリを作る