读取java中特定偏移量之间的字节

时间:2014-04-15 21:15:36

标签: java io

我将字符偏移到文件中,我正在寻找一种方法来读取跨越这些偏移的字符。我尝试使用bufferedReader,但返回的字节来自文件的开头。

理想情况下,我想寻找文件中的某个位置并读取特定的字节长度。

有人可以建议替代解决方案吗?

1 个答案:

答案 0 :(得分:4)

从根本上说,这取决于字符编码。

如果您使用的是UTF-8并且文本中包含非ASCII字符,则字符偏移量会告诉您相对较少的 byte 偏移量。 (文件系统基本上是字节,而不是字符。)

但是,如果您使用固定宽度编码,则可以简单地将字符偏移量乘以字符宽度(以字节为单位),然后使用InputStream.skip跳到文件的右侧部分:

  • 为相关文件构建FileInputStream
  • 跳到右边的部分
  • 使用输入流构建InputStreamReader - 确保指定编码!

同样,如果你使用的是可变宽度编码,例如UTF-8,你基本上不会从字符偏移中获得太多信息。