Values)形式を用いる方法があります。CSVでは、データの各要素をカンマ(「,」)で区切り、改行がそのままデータ行の区切りを表します。CSVデータは、一般に「.csv」という拡張子の付いたテキストファイルとして保存されます。Excelなどの表計算ソフトでも読み込むことができ、閲覧や編集が簡単なため、よく利用されます。本稿では、CSV形式のデータをJavaで扱うときの基本的な手順を紹介します。サンプルとして、以下のCSVデータを扱います。このデータは、日本の作家の生年/没年を表しています。writers.csv宮沢賢治,1896,1933稲垣足穂,1900,1977三島由紀夫,1925,1970解説CSVデータの読み込みには、コアAPIのjava.io.BufferedReaderクラスと、java.util.StringTokenizerクラスを併用します(J2SE1.4以降なら、StringTokenizerクラスの代わりに、java.lang.String#split(String)メソッドを用いることもできます)。java.ioパッケージのクラスを用いてファイルの入出力を行い、StringTokenizerクラスによって、カンマ区切りのデータを要素ごとに分割していきます。以下のサンプルプログラムは、読み込んだCSVデータをタブ区切りで標準出力に表示します。(br.ready())」について貴重なご指摘をいただき、コードを差し替えさせていただきました。内容について正確を期せずに混乱を招いた点、読者の皆様におわび申し上げます。ファイルからデータを読み込むときは、java.io.BufferedReaderクラスを使うのが基本です。java.io.FileReaderクラスでもデータを読み込むことは可能ですが、バイトごとに読み込みを行うため非効率です。その点、BufferedReaderクラスなら、バッファリングによってまとめて読み込みが行われるため、効率的に処理することができます。上のコードを実行すると、次のような結果が得られます。1970さて、今度はCSVファイルにデータを書き出します。書き出しは、通常のファイルへのデータ出力と同様に、java.io.BufferedWriterクラスを用います。データの要素をカンマで挟んで連結し、ファイルへ書き出すだけです。以下のサンプルプログラムでは、CSVファイルの末尾へデータを1行追加しています。}}ファイルへの書き出しも、読み込みと同様にバッファリングをして書き出す方が効率的なので、書き出しにはjava.io.BufferedWriterクラスを用います。このプログラムを実行します。javatips.WriteCSVデータの書き出しが行われたwriters.csvは、以下のように変更されます。writers.csv(データ追記後)宮沢賢治,1896,1933稲垣足穂,1900,1977三島由紀夫,1925,1970中上健次,1946,1992注意:CSVデータでは、カンマや改行は特別な意味を持っているため、それらをデータの要素として扱いたいときは、適切にクオートしなくてはなりません(CSVに標準というものはありませんが、例えばExcelでは、カンマや改行を含むデータ要素を「"」で囲み、データ要素に「"」が含まれる場合はそこを「""」と変換します)。ここでは、CSVファイルの最低限の読み書きの説明を目的としているため、そのような高度な処理の部分については、割愛してあります。データの要素にカンマや改行などを含めたい場合は、データのクオートを行わなくてはならないことを覚えておいてください。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。