dポイントプレゼントキャンペーン実施中!

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

BufferedReaderやLineNumberReaderをループで回すのではなく、ランダムアクセスをすればよいというところまでは分かっているのですが、ランダムアクセスの方法が今ひとつ分かりません。

A 回答 (2件)

テキストファイルを行指定して、ランダムアクセスする方法は、基本的にありません。


毎回、ループで回して、先頭から毎回読み込むか、
プログラム実行中に何回も使いまわすなら、メモリ上に読み込んでおくとよいです。

また、ランダムアクセスが可能になる特殊なケースとしては、
テキストファイルの読みたい位置が行数ではなく、ファイルの先頭からのバイト数で
最初からわかっていれば、ランダムアクセス可能です。
が、このようなケースは通常ありません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/01/06 22:18

各行の長さが固定なら「指定位置まで飛ばす」という形でランダムアクセスできますが, そうでなければ


・先頭からちまちま読み込む
・各行の先頭を指すようなインデックスファイルを作っておいてそれを参照する
くらいしか方法はないんじゃないかな.
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/01/06 22:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!