【Java】CSVを読み込みMapへ変換する方法
JavaでCSVファイルを読み込み、CSVファイルを編集したい場合があります。
CSVファイルをMap形式で格納することで、プログラム内の処理しやすくします。
例えば「カンマ区切り」などで項目を編集したい場合は、例えば次のようなCSVファイルを読み込みたい場合などです。
読み込むファイル"C:\\eclipse\\workspace\\test.csv" ※Mapのキー値は "番号","内容"とする ↓"C:\\eclipse\\workspace\\test.csv"の内容↓ 01,あああ 02,いいい 03,ううう
以下のように実装すればMapに変換できます。
readLineで読み取った値をsplitで区切り文字で分割させ、for文でキー値と値をセットとして、mapにセットします。
public static Map<String, String> CSVTOMAP(String csv, String[] キー値) {
// splitメソッドで文字列を分割して配列に格納
String[] 値 = csv.split(",");
Map<String, String> map = new HashMap<>();
for (int i = 0; i < キー値.length; i++ ) {
// キー値と値をfor文で回しセットする。
map.put(キー値[i], 値[i]);
}
return map;
}
実際に組んでみると次のようになります。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class TEST {
public static void main(String[] args) throws IOException {
try {
File file = new File("C:\\eclipse\\workspace\\test.csv");
BufferedReader br = new BufferedReader(new FileReader(file));
String[] MAPKEY = {"番号","内容"};
String line = br.readLine();
while (line != null) {
Map<String, String> map = CSVTOMAP(line, MAPKEY);
System.out.println(map);
line = br.readLine();
}
br.close();
} catch (IOException e) {
System.out.println(e);
}
}
public static Map<String, String> CSVTOMAP(String csv, String[] キー値) {
String[] 値 = csv.split(",");
Map<String, String> map = new HashMap<>();
for (int i = 0; i < キー値.length; i++ ) {
map.put(キー値[i], 値[i]);
}
return map;
}
}
// 実行結果
{番号=01, 内容=あああ}
{番号=02, 内容=いいい}
{番号=03, 内容=ううう}







コメントを残す