• ベストアンサー

データを取得し、その度に新しい配列に格納したい

こんばんは。 CSVファイルのデータを読み込むクラスを作っています。CSVファイルは30ほどあるので、カンマで区切ったトークンの数(StringTokenizerで区切ったトークンの数)と行数はファイルによって違います。 1つのクラスを作り、データを配列に読み込ませたいと思います。Vectorクラスを使うと出来たのですが、全部String型なので、ストリング型の2重配列に読み込ませたいです。 最初に、配列の宣言をしたのでは、配列のサイズが決まってしまうので、データ数により、配列の大きさを変えたいのですが、うまい方法が見つかりません。 誰か分かる方は、教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • COOKY2
  • ベストアンサー率28% (2/7)
回答No.2

BufferedReaderに放り込んでから、StringTokenizerに渡せばいかがでしょうか? 私は、XMLファイルをINIファイルとして使用しています。CSVファイルによって、列数、行数、CSVファイルへのパスを持たせておいて、ひとつのアプリで、いろんなパターンに対応させています。。 当然、DOMを扱う、オブジェクトが、必要になってきますが、、、、 FileReader srcFr = new FileReader(strSrcPath); BufferedReader srcBr = new BufferedReader(srcFr); int i = 0; while(srcBr.ready()){ %> <TR bgcolor=#f5fffa> <% tkn = new StringTokenizer(srcBr.readLine(),ptn3); ・・・・・・・以下省略・・・・・・・・

kamkamkam3
質問者

お礼

こんばんは。 すばらしい発想ですね。配列の代わりにDOMを使うということですね。これなら確かにデータ数はお構いなしですね。 う~ん。こんな作り方もあるものですね。私の周りには、Javaが出来る人間があまりいないので、一人で四苦八苦しています。質問してみてよかったです。 まさか、このような解答が来るとは思っていませんでした。ひたすら感心しております。 どうもありがとうございました。がんばって挑戦してみようと思います。VECTORクラスでやるよりも手間がはぶけそうです。

その他の回答 (1)

回答No.1

>最初に、配列の宣言をしたのでは、配列のサイズが決まってしまうので、 >データ数により、配列の大きさを変えたいのですが、 >うまい方法が見つかりません。 配列のサイズを自由に変更するのはVectorやArrayListを使わないと無理です。 強いて言うのなら自分で作るしかないでしょう。 というか、JAVAではサイズが自由に変えられないので、配列は使いませんね。 toArray()で後から配列にするというのでは駄目ですか?

kamkamkam3
質問者

お礼

ご返事ありがとうございます。 Javaでは、出来ないのですね。SEができるというので、調べては見たのですが、できませんよね。私も出来ないと思っていました。 今度自分で作ってみようと思います。どうもありがとうございました。あと、ArrayListは使った事がないので、試してみようと思います。では、ありがとうございました。

関連するQ&A