• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSVファイルの特定の行だけを読み込みたいです。)

CSVファイルの特定の行を効率よく読み込む方法はあるのか?

このQ&Aのポイント
  • CSVファイルの特定の行を読み込む方法について効率的な方法を知りたい。
  • 現在はループを使用して1行ずつ読み込んでいるが、行番号を指定して直接読み込む方法はないか?
  • Javaの標準クラスで効率的にCSVファイルの特定の行を読み込む方法があるか知りたい。

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

  • ベストアンサー
  • yukitakao
  • ベストアンサー率44% (16/36)
回答No.2

Javaはしばらくいじってないのであれですが・・・ 仮にreadline(9999)というような関数があるとしても内部的には for(int i=0;i<9998);i++){ br.readline() } と同じことをしていて スペック的にはほとんど変わらないはずです。 9999行目を読み込むためには 1行目から順に最初からファイルを読んでいって改行の数を数えてやる必要があるので・・・ 見栄えがというのであれば自分でBufferedReader を継承して独自のクラスを作ってしまったらいかがでしょう? readline(int line)だけ書いてやるだけだから5分とかからないし・・・ なおJavaは最近いじってないので標準関数でご希望のものがあるかはわかりませんが 自分だったらそんなことで悩んでる暇があったら自分で書いちゃいます。

hiroko_ss
質問者

お礼

改行コードがいくつ入ってるかを調べないと駄目ということは、 あまり速度的にも改善は見込めなさそうですね。 見栄えよりも出来れば速度的に改善したかったので、 改善しようと思ったらデータの形式自体を変えないと無理でしょうか…。 ご回答ありがとうございました。

その他の回答 (2)

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

「各行の長さが一定である」などの条件がない限り, 本質的にはどうしようもありません. ほかの人も書かれていますが, 「見栄え」はきれいになっても効率は変わらないです.

hiroko_ss
質問者

お礼

見栄えよりも出来れば速度的に改善したかったので、 他の方も仰るとおりデータの形式自体を変えないと無理みたいですね…。 でもこれでモヤモヤが取れました。 ご回答ありがとうございました。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

JAVAを全く知らない私が言うのもなんですが、 特定の行ということは、改行コードがいくつ入っているということを読んで調べないと どこから始まっているのかわからないとおもいます。(のでむりだとおもいます。)

hiroko_ss
質問者

お礼

うーんなるほど。 改行コードがいくつ入ってるかを調べないと駄目ということは、 あまり速度的にも改善は見込めなさそうですね。 ご回答ありがとうございました。

関連するQ&A

専門家に質問してみよう