0

現在、テキスト ファイルのバイト オフセットがわかっているシナリオがあります。とにかく、バイトオフセットから行番号を特定できる方法があることを知りたいです。テキスト ファイル内のレコードは固定長ではありません。この場合、オフセットを幅で割ります。

4

2 に答える 2

3

すべての行の長さが均一でない限り、バイト オフセットから行番号を特定することはできません。ただし、改行をスキャンして追跡し、ファイル内のオフセットを計算できます。

于 2012-11-28T16:18:55.573 に答える
0

次のようなことができます。

String fullTextFile = loadTextFile();
String section = fullTextFile.substring(0, byteOffset);
String reduced = section.replaceAll("[^\n]*","");
int lineNumber = reduced.length();

その正規表現がどの程度合法であるかは完全にはわかりませんが、あまり調整する必要はありません。

于 2012-11-28T16:18:03.713 に答える