ここから本文です

javaでCSVを取得し、2次元配列に格納する方法について

pat********さん

2014/1/915:52:04

javaでCSVを取得し、2次元配列に格納する方法について

CSVからデータを取得することはできたのですが2次元配列に格納するところがうまくいきません。
現在作成中のソースコードがこれです。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
/**
* ファイルの読み込みサンプル
* テキストファイルの読み込み
*/

public class tiebukuro {
static int two = 2;
static int four= 4;
static double[] [] data = new double[two][four];//入力するデータ
public static void main(String[] args) {
int i = 0;
int j = 0;

// 読み込むファイルの名前
String inputFileName = "C:/Users/oono-dx/Desktop/Eclipse/kenkyu/book1.csv";
// ファイルオブジェクトの生成
File inputFile = new File(inputFileName);
try {
// 入力ストリームの生成
FileInputStream fis = new FileInputStream(inputFile);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
// テキストファイルからの読み込み
String str;
while ( ( str = br.readLine()) != null ) {
String[] strAry = str.split(",");
data[i][j]=Double.parseDouble(str);
System.out.println(data[i][j]);
if(i<two){
i++;
}else{
i=0;
}
if(j<four){
j++;
}else{
j=0;
}

}
// 後始末
br.close();
// エラーがあった場合は、スタックトレースを出力
} catch(Exception e) {
e.printStackTrace();
}
}
}

おそらく文字列を実数型に変換する際にうまくいっていないのかと思います。
CSVファイルには
0,0,0,0
0,0,0,0
というデータが試験的に入っています。
どのような処理を行えば格納できるのか教えてください。

アドバイスよろしくお願いします。

補足フローチャートの書き方は分かりませんが、CSVファイルを読み込みそれを2次元配列に格納するプログラムです。

閲覧数:
1,891
回答数:
2

違反報告

ベストアンサーに選ばれた回答

roz********さん

編集あり2014/1/1111:18:36

str.splitで区別された文字列は、
strAry[0]、strAry[1]とかに順番に入っていませんか?
parseDoble(str)だと全体の文字列を変換しているだけでは…
あと、変数i,jの値が0,0 1,1 2,2 0,3 1,4とややこしいことになってます。
0,0 0,1 0,2 0,3 1,0 1,1となるように変えるべきです。
それと、列の個数が固定されてるので、strがnullになるまでループがあまり意味ありません。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

e00********さん

編集あり2014/1/1609:16:03

一度、ループを使うのをやめてみては、(while)それでどうでしょう?

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる