- 締切済み
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ファイルとして出力する方法もお願いします
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
そもそもどのような「エラー」が起きているのか, きちんと把握できているんですか?
- Wr5
- ベストアンサー率53% (2173/4061)
>im[i] = int.parseInt(al.get(i)); >ではないんですかね? imは二次元配列だから…コレはないか……。 1つずつ、int.parseInt()で数字=>数値変換しながら格納していくことになるかと思われます。 「java csv 読み込み」で検索すれば、文字列の二次元配列に読み込むサンプルくらいは見つかるでしょう。 そこから、数字=>数値変換を組み合わせていけばよろしいかと。
お礼
貴重なお時間をありがとうございました
- Wr5
- ベストアンサー率53% (2173/4061)
>im[i] = (int)al.get(i); // ここでエラー 「数字」をintでキャストしたら「数値」になる…んでしょうか? # 「数字」と「数値」の区別は出来ていますか?? http://www.javaroad.jp/java_number2.htm im[i] = int.parseInt(al.get(i)); ではないんですかね? >また逆で、int型配列に格納されているデータをCSVファイルとして出力する方法もお願いします int型のままファイルに出力しても、人間には理解できないモノになるだけですので、 「数値」を「数字」として出力する必要があるでしょう。
補足
al.getがStringなのでエラーが起こります。
補足
はい エラー箇所はint型をint[]型に変換できないためエラーになります