CSVファイルを読み込むサンプル
サンプルダウンロード
CSVファイルの内容
"1","CSV読込の","2011/01/01"
"2","テスト中","2012/10/01"
"3","読み込めてますかー","2010/09/10"
"4","もっと行を","2011/01/01"
"5","増やしてみましょう","2012/10/01"
"6","これぐらいかな?","2010/09/10"
実行結果
[1, CSV読込の, 2011/01/01]
[2, テスト中, 2012/10/01]
[3, 読み込めてますかー, 2010/09/10]
[4, もっと行を, 2011/01/01]
[5, 増やしてみましょう, 2012/10/01]
[6, これぐらいかな?, 2010/09/10]
ソース
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CsvRead {
public static void main(String[] args) {
List<String[]> list = readCsv(new File("CsvRead.csv"));
for (String[] ary : list) {
System.out.println(Arrays.toString(ary));
}
}
// CSVファイルを読み込んで、String配列のリストとして返します。
public static List<String[]> readCsv(File f) {
List<String[]> list = new ArrayList<String[]>();
try {
FileInputStream s = new FileInputStream(f);
// 文字コードを変える場合は、InputStreamReaderの第二引数を変更するとよいです。
InputStreamReader r = new InputStreamReader(s, "Shift_JIS");
BufferedReader br = new BufferedReader(r);
String line;
while((line = br.readLine()) != null) {
line = line.substring(1, line.length() - 1);
String[] ary = line.split("\",\"");
list.add(ary);
}
br.close();
r.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
}
解説
- CSVファイルを一行ずつ読み込みます。
- 一行の先頭と末尾の「"」を取り除くため、substringを使っています。
line = line.substring(1, line.length() - 1);
"hoge","moge","mage" |
→ |
hoge","moge","mage |
- 先頭と末尾の「"」を取り除いた文字列を、「","」で分割すると、綺麗に各項目に別れます。
String[] ary = line.split("\",\"");
hoge","moge","mage |
→ |
hoge |
moge |
mage |
最終更新:2012年10月11日 03:07