获取文本文件中行的字节偏移量?

我有一个文本文件

one two three four five 

我需要获取文件中每一行的偏移量。 我如何用Java做到这一点?

我搜索了一些I / O库(如BufferedReader和RandomAccessFile),但我无法找到满意的答案。

任何人都可以建议如何处理这个?

另一种方法是计算每条线的字节数

  BufferedReader br = null; try { String line; // in my test each character was one byte ArrayList byteoffset = new ArrayList(); br = new BufferedReader(new FileReader("numbers.txt")); Integer l = 0; while ((line = br.readLine()) != null) { System.out.println(line); Integer num_bytes = line.getBytes().length; System.out.println(num_bytes); byteoffset.add( l==0 ? num_bytes : byteoffset.get(l-1)+num_bytes ); l++; } } catch ( Exception e) { } 

在此示例中,您还需要将换行符\ n的大小添加到每行的大小

a)字节偏移0,即。 文件开始
b)打开文件,读取二进制字节块(而不是字符串等),
读取整个文件(循环中每次最多4096字节)
并在每次循环迭代中搜索块中值为'\n'的字节。
每个'\n'的位置加上前一个块* 4096的计数是另一个行偏移。