• ベストアンサー

テキストファイルの行数を指定してとばす方法

Java初心者です。 テキストファイルの中のある1行を読み込むプログラムを作成したいと思っています。その際、毎回先頭から読み込むのでは効率が悪いので指定した行に直接アクセスしたいのですが、その方法がよく分からないので教えていただけませんか? BufferedReaderやLineNumberReaderをループで回すのではなく、ランダムアクセスをすればよいというところまでは分かっているのですが、ランダムアクセスの方法が今ひとつ分かりません。

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

  • ベストアンサー
  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

テキストファイルを行指定して、ランダムアクセスする方法は、基本的にありません。 毎回、ループで回して、先頭から毎回読み込むか、 プログラム実行中に何回も使いまわすなら、メモリ上に読み込んでおくとよいです。 また、ランダムアクセスが可能になる特殊なケースとしては、 テキストファイルの読みたい位置が行数ではなく、ファイルの先頭からのバイト数で 最初からわかっていれば、ランダムアクセス可能です。 が、このようなケースは通常ありません。

leomac
質問者

お礼

回答ありがとうございます。 やはりランダムアクセスは(通常)無理なのですね。それほど大きなファイルではないのでメモリ上に読み込むことにします。

その他の回答 (1)

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

各行の長さが固定なら「指定位置まで飛ばす」という形でランダムアクセスできますが, そうでなければ ・先頭からちまちま読み込む ・各行の先頭を指すようなインデックスファイルを作っておいてそれを参照する くらいしか方法はないんじゃないかな.

leomac
質問者

お礼

回答ありがとうございます。 データ長が一定でないとランダムアクセスできないのは、なんだか不便ですね(^^;) あえてインデックスファイルを作るほどのものでもないので、メモリにロードすることにします。

関連するQ&A