2014-04-15 36 views
0

我将字符偏移量放入一个文件中,并且正在寻找一种读取跨越这些偏移量的字符的方法。我尝试使用bufferedReader,但返回的字节是从文件的开头。在java中的特定偏移量之间读取字节

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

任何人都可以提出一种替代解决方案吗?

回答

4

基本上,这取决于字符编码。

如果您在文本中使用UTF-8并使用非ASCII字符,则字符偏移量会告诉您相对较少的字节偏移量您必须寻求。 (文件系统基本上是关于字节,而不是字符)

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

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

此外,如果您使用的是可变宽度编码(如UTF-8),则基本上不会从字符偏移量获取太多信息。