| Javaプログラミング編 |
|
Excelなどで作成した表形式ファイルのデータ部を、ほかのアプリケーションに引き渡したい場合に、最もシンプルな方法の1つがテキストファイル化です。
この時、用いられる代表的な形式が2つあり、セルとセルの区切りを現す方法によって使い分けられています。それが「カンマ区切り(CSV)ファイル」と「テキスト(タブ区切り)ファイル」です。例えば、Excelでは、この2つの形式のどちらでも保存できるようになっています。
これに対して、Javaには、なんらかの区切り文字を含むデータをトークンと呼ばれる単位に分解する機能を持つクラスがいくつかあります。その中で、文字列を対象とするシンプルなものがStringTokenizerクラスです。
使い方は簡単で、StringTokenizerのコンストラクタに、区切り文字を含む文字列と、区切り文字を与え、hasMoreTokens()メソッドがfalseを返すまで、nextToken()メソッドでトークンを得るという仕組みです。
サンプルとして、カンマ区切り(CSV)の文字列と、タブ区切りの文字列をそれぞれトークンに分割して表示するプログラムは下記のようになります。
![]() |
| 図1 CSV文字列と、タブ区切り文字列をトークンに分割して表示するプログラム |
■ CSVファイルからHTMLを編集・出力する
CSVファイルからHTMLを作成したい場合、Excelで読み込んで「名前を付けて保存」を実行し、ファイルの種類を「Webページ」とすれば簡単にできます。しかし、HTMLの構成を思いとおりにしたり、ほかの処理をするプログラムからダイナミックに作成したい場合などは、StringTokenizerを使うと便利です。
一例として、CSVファイルを読み込んで、行番号を加えてテーブル化したHTMLを出力するプログラムを示します。下記のCSVファイル「a.csv」があるとします。
| JREのバージョン,脆弱性有り,解消 1.3.1,1.3.1_18,1.3.1_19 1.4.2,1.4.2_12,1.4.2_13 1.5.0,1.5.0_09,1.5.0_10 |
このCSVファイルを、Java TIPS「java.ioパッケージのReader系クラスの使い分け」で紹介しましたLineNumberReaderクラスを用いて読み込み、StringTokenizerで分解し編集・出力するプログラムは以下のようになります。
![]() |
| 図2 CSVファイルを読み込み、行番号を加えてテーブル化したHTMLを出力するプログラム |
出来上がったHTMLファイルをブラウザで表示すると、下図のようになります。
![]() |
| 図3 実行結果をブラウザで表示 |
| 「Java TIPS」 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



