こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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ファイルとして出力する方法もお願いします

投稿日時 - 2012-11-27 11:49:40

QNo.7818152

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2012-11-27 12:39:04

補足

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

投稿日時 - 2012-11-27 12:42:53

ANo.2

Wr5

>im[i] = int.parseInt(al.get(i));
>ではないんですかね?

imは二次元配列だから…コレはないか……。
1つずつ、int.parseInt()で数字=>数値変換しながら格納していくことになるかと思われます。

「java csv 読み込み」で検索すれば、文字列の二次元配列に読み込むサンプルくらいは見つかるでしょう。
そこから、数字=>数値変換を組み合わせていけばよろしいかと。

投稿日時 - 2012-11-27 12:14:11

お礼

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

投稿日時 - 2012-11-27 12:16:47

ANo.1

Wr5

>im[i] = (int)al.get(i); // ここでエラー

「数字」をintでキャストしたら「数値」になる…んでしょうか?
# 「数字」と「数値」の区別は出来ていますか??

http://www.javaroad.jp/java_number2.htm

im[i] = int.parseInt(al.get(i));
ではないんですかね?

>また逆で、int型配列に格納されているデータをCSVファイルとして出力する方法もお願いします

int型のままファイルに出力しても、人間には理解できないモノになるだけですので、
「数値」を「数字」として出力する必要があるでしょう。

投稿日時 - 2012-11-27 12:01:59

補足

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

投稿日時 - 2012-11-27 12:04:27

あなたにオススメの質問