0

csv ファイルを解析するためのユーティリティ メソッドを作成しています。何らかの理由で、このメソッドは、マップのリストへの挿入中にヌル ポインター例外を示しています。理由はわかりません。誰かがこれに目を向けて、なぜこれが起こっているのか説明できますか? これが nullpointer 例外のポイントです。

record.put(header[i].toString(), nextLine[i].toString());

解析するファイルは次のとおりです。

id;state;city;total_pop;avg_temp
1;Florida;Miami;120000;76
2;Michigan;Detroit;330000;54
3;New Jersey;Newark;190000;34

そしてコード:

public class FileParserUtil {


    public List<Map<String, String>> parseFile(String fileName, char seperator)
            throws IOException {

        CSVReader reader = new CSVReader(new FileReader(fileName), seperator);
        Map<String, String> record = null;
        List<Map<String, String>> rows = null;

        // int colcnt = reader.readNext().length;
        String[] header = reader.readNext();
        String[] nextLine;

        while ((nextLine = reader.readNext()) != null) {

            for (int i = 0; i< nextLine.length; i++){

                System.out.println(header[0]);
                System.out.println(nextLine[0]);

                System.out.println(header[1]);
                System.out.println(nextLine[1]);

                System.out.println(nextLine.length);

                 record.put(header[i].toString(), nextLine[i].toString());

            }
            rows.add(record);
        }
        reader.close();
         return rows;

    }
}
4

1 に答える 1

0

変数header[i]の長さはおそらく同じではないため、同じインデックスを使用してその要素を取得するnextLine[i]ことはできません。i

編集: 初期化を忘れたと思いますMap<String, String> record。あれですか?

于 2013-10-09T00:39:47.660 に答える