ファイルから行を読み取るために SeekableByteChannel を使用できますか。位置 (バイト単位) があり、行全体を読み取りたい。たとえば、このメソッドを RandomAccessFile に使用します
private static String currentLine(String filepath, long currentPosition)
{
RandomAccessFile f = new RandomAccessFile(filepath, "rw");
byte b = f.readByte();
while (b != 10)
{
currentPosition -= 1;
f.seek(currentPosition);
b = f.readByte();
if (currentPosition <= 0)
{
f.seek(0);
String currentLine = f.readLine();
f.close();
return currentLine;
}
}
String line = f.readLine();
f.close();
return line;
}
SeekableByteChannel にこのようなものを使用するにはどうすればよいですか?膨大な数の行を読み取るのに高速になりますか?