前提・実現したいこと
csvファイルから読み込んだデータを配列かArrayListに格納し、int型に変換したい。
■748行、1024列の各マスに数値が記載されているcsvファイルから読みこんだデータをint型に変換して取り扱おうとしていますが、実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ Exception in thread "main" java.lang.NullPointerException
該当のソースコード
Java
1import java.io.*; 2public class extract { 3 // CSVファイルを2次元配列に読み込み 4 public static void main(String[] args) { 5 BufferedReader br = null; 6 String file_img_L = "img_L.csv"; // 入力ファイル 7 // データの最大個数 8 final int MAX_DATA_NUMS = 1200; 9 // データを格納する2次元配列 10 String[][] data_img_L = new String[MAX_DATA_NUMS][]; 11 try { 12 File file = new File(file_img_L); 13 br = new BufferedReader(new FileReader(file)); 14 // readLineで一行ずつ読み込む 15 int index = 0; 16 String line; 17 while ((line = br.readLine()) != null) { 18 // lineをカンマで分割し、配列dataに保持 19 data_img_L[index] = line.split(","); 20 index++; 21 } 22 } 23 catch (Exception e) { 24 System.out.println(e.getMessage()); 25 } finally { 26 try { 27 br.close(); 28 } catch (Exception e) { 29 System.out.println(e.getMessage()); 30 } 31 } 32 33 int[][] img_L = new int[MAX_DATA_NUMS][]; 34 for (int y = 0; y < MAX_DATA_NUMS; y++) { 35 for (int x = 0; x < data_img_L[y].length; x++) { 36 img_L[y][x] = Integer.parseInt(data_img_L[y][x]); 37 } 38 } 39 40 // 配列に格納したデータを表示(確認用) 41 System.out.print(img_L[0][0]); 42 43 } 44}
試したこと
ArrayListにdataを入れて要素数を指定しない方法も試してみたものの同様のエラーが確認されました。
おそらくint型に変換するimg_L[y][x] = Integer.parseInt(data_img_L[y][x]);の部分でエラーが生じています。
補足情報(FW/ツールのバージョンなど)
IntelliJ IDEA Community Edition 2021.2.3
回答1件
あなたの回答
tips
プレビュー