• 締切済み

CSVファイルを二次元配列に格納するプログラム

整数のCSVファイルを読み込んで、int型の二次元配列に格納するプログラムを作成中なのですが どうもうまくいきません。 String Str = ""; try { File inFile = new File("./res/test.csv"); FileReader fr = new FileReader(inFile); BufferedReader br = new BufferedReader(fr); ArrayList<String[]> al = new ArrayList<String[]>(); while (br.ready()) { Str = br.readLine(); al.add(Str.split(",")); } int[][] im = new int[al.size()][]; for (int i = 0; i < al.size(); i++) { im[i] = (int)al.get(i); // ここでエラー } br.close(); fr.close(); } catch (Exception e) { System.out.println("ファイル読み込みに関するエラー"); } 他にいい方法ありませんか? また逆で、int型配列に格納されているデータをCSVファイルとして出力する方法もお願いします

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

そもそもどのような「エラー」が起きているのか, きちんと把握できているんですか?

criminal1006
質問者

補足

はい エラー箇所はint型をint[]型に変換できないためエラーになります

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>im[i] = int.parseInt(al.get(i)); >ではないんですかね? imは二次元配列だから…コレはないか……。 1つずつ、int.parseInt()で数字=>数値変換しながら格納していくことになるかと思われます。 「java csv 読み込み」で検索すれば、文字列の二次元配列に読み込むサンプルくらいは見つかるでしょう。 そこから、数字=>数値変換を組み合わせていけばよろしいかと。

criminal1006
質問者

お礼

貴重なお時間をありがとうございました

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>im[i] = (int)al.get(i); // ここでエラー 「数字」をintでキャストしたら「数値」になる…んでしょうか? # 「数字」と「数値」の区別は出来ていますか?? http://www.javaroad.jp/java_number2.htm im[i] = int.parseInt(al.get(i)); ではないんですかね? >また逆で、int型配列に格納されているデータをCSVファイルとして出力する方法もお願いします int型のままファイルに出力しても、人間には理解できないモノになるだけですので、 「数値」を「数字」として出力する必要があるでしょう。

criminal1006
質問者

補足

al.getがStringなのでエラーが起こります。

関連するQ&A