バッファリーダーは、ファイルを順番に読み取ることを目的としています。探しているのはjava.io.RandomAccessFileであり、ファイル内の目的の場所に移動するために使用できseek()
ます。
ランダム アクセス リーダーは次のように実装されます。
try{
String fileName = "c:/myraffile.txt";
File file = new File(fileName);
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.readChar();
raf.seek(0);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ここで詳しく説明され"rw"
ているモード キャラクタです。
シーケンシャル アクセス リーダーがこのように設定されている理由は、バッファーを実装し、足元で変更できないようにするためです。たとえば、バッファリングされたリーダーに与えられたファイルリーダーは、そのバッファリングされたリーダーによってのみ操作されるべきです。それに影響を与える可能性のある別の場所があった場合、1 つのリーダーがファイル リーダー内でその位置を進めたのに対し、もう 1 つのリーダーは同じ位置を維持したかったため、別のリーダーを使用し、その場所が未定になったため、操作に一貫性がなくなる可能性があります。