- 締切済み
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)メソッドを使用することを考えましたが、ファイルの各行のバイト数は各行ごとに異なるので、規則性がなく無理であると考えあきらめました。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- rinkun
- ベストアンサー率44% (706/1571)
回答No.1
一応LineNumberReaderというものがあるので、それを使えば自分で行番号を管理する必要はなくなりますが、1300行を読まなければいけないのは変わりませんね。 各行の先頭を指すインデックステーブルでも用意していれば別ですが、そうでなければ順に読んでいくしか手はないでしょう。