他の人が述べているように、BufferedReader など、テキスト行を読み取るように特別に設計された他のクラスがあります。ただし、RandomAccessFile を使用する必要がある場合は、テキスト行を読み取ることはできますが、ある行の終わりと別の行の始まりをプログラムで見つける必要があります...
簡単な例は...
RandomAccessFile raf = new RandomAccessFile("c:\test.txt","r");
String line = "";
while (raf.available()){
byte b = raf.read();
if (b == '\n'){
// this is the end of the current line, so prepare to read the next line
System.out.println("Read line: " + line);
line = "";
}
else {
line += (char)b;
}
}
これにより、各行の終わりを探すリーダーの基本的な構成要素が得られます。
RandomAccessFile を使用する道をたどりたい場合は、このフレームワークから始めることができますが、多くの欠点や次のような問題があることに注意する必要があります... 1. Unix と Windows は異なる行マーカーを使用します。 '\n'、'\r'、およびこれらの両方の組み合わせを探す必要があります。 2. 一度に 1 バイトを読み取るのは非常に時間がかかります。 [2048] 配列) を反復処理し、バッファ配列の最後に到達すると、RandomAccessFile から配列を再充填します。3. Unicode 文字を扱っている場合は、1 バイトではなく、一度に 2 バイトを読み取って処理する必要があります。
RandomAccessFile は非常に強力ですが、BufferedReader のようなものを使用できる場合は、これらすべての問題を自動的に処理するため、代わりにそれを使用することをお勧めします。