「Java/サンプル/CSVファイルを読み込む」の編集履歴(バックアップ)一覧はこちら

Java/サンプル/CSVファイルを読み込む」(2012/10/11 (木) 03:07:59) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

CSVファイルを読み込むサンプル *** サンプルダウンロード &ref(CsvRead.java) &ref(CsvRead.csv) *** CSVファイルの内容 #highlight(java){{ "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" }} *** 実行結果 #highlight(java){{ [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] }} *** ソース #highlight(java){{ 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を使っています。 |"hoge","moge","mage" | → | hoge","moge","mage | #highlight(java){{line = line.substring(1, line.length() - 1);}} - 先頭と末尾の「"」を取り除いた文字列を、「","」で分割すると、綺麗に各項目に別れます。 | hoge","moge","mage | → |hoge|moge|mage| #highlight(java){{String[] ary = line.split("\",\"");}}
CSVファイルを読み込むサンプル *** サンプルダウンロード &ref(CsvRead.java) &ref(CsvRead.csv) *** CSVファイルの内容 #highlight(java){{ "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" }} *** 実行結果 #highlight(java){{ [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] }} *** ソース #highlight(java){{ 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を使っています。 #highlight(java){{line = line.substring(1, line.length() - 1);}} |"hoge","moge","mage" | → | hoge","moge","mage | - 先頭と末尾の「"」を取り除いた文字列を、「","」で分割すると、綺麗に各項目に別れます。 #highlight(java){{String[] ary = line.split("\",\"");}} | hoge","moge","mage | → |hoge|moge|mage|

表示オプション

横に並べて表示:
変化行の前後のみ表示: