本サイトはプロモーション(広告)が含まれています。

【Java】CSVを読み込みMapへ変換する方法

【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, 内容=ううう}

Javaの記事一覧へ

PAGE TOP