• 締切済み

Fileから指定した行を読み取りたい

現在、例えば1300行目を読み取りたいとしたときに、今現在の私のやり方では、 FileInputStream fis = new FileInputStream("xxxxxx.txt"); InputStreamReader ir = new InputStreamReader(fis , "SJIS"); BufferedReader br = new BufferedReader(ir); String ch; int count=0; while((ch = br.readLine()) != null){  count++;  if(count == 1300)    break; } System.out.println("指定行の内容は:"+ch); br.close(); のように、1300回行を読んだらその内容を出力するようにしているのですが、これは、かなり無駄があると思うのです。なので、指定した行に読み込みヘッダを移動して、その指定した行を読み取りたいのですが、指定行を一発で読み取ることはできますか? skip(long numChars)メソッドを使用することを考えましたが、ファイルの各行のバイト数は各行ごとに異なるので、規則性がなく無理であると考えあきらめました。

みんなの回答

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

一応LineNumberReaderというものがあるので、それを使えば自分で行番号を管理する必要はなくなりますが、1300行を読まなければいけないのは変わりませんね。 各行の先頭を指すインデックステーブルでも用意していれば別ですが、そうでなければ順に読んでいくしか手はないでしょう。

関連するQ&A