3

次のようなテキストファイルがあります

one
two
three
four
five

ファイル内の各行のオフセットを取得する必要があります。Javaでこれを行うにはどうすればよいですか?

いくつかの I/O ライブラリ (BufferedReader や RandomAccessFile など) を検索しましたが、これに対する満足のいく答えが見つかりません。

誰でもこれに対処する方法を提案できますか?

4

2 に答える 2

5

a) バイト オフセット 0。file start
b)バイナリバイトブロックを読み取る何かでファイルを開き(文字列などではなく)、
ファイル全体を読み取り(毎回最大4096バイトなどのループで)、ブロック内の
値でバイトを検索します。'\n'各ループ反復で。
それぞれの位置に'\n'前のブロックのカウント * 4096 を加えたものが、もう 1 行のオフセットです。

于 2014-03-02T23:48:03.510 に答える