我将字符偏移到文件中,我正在寻找一种方法来读取跨越这些偏移的字符。我尝试使用bufferedReader,但返回的字节来自文件的开头。
理想情况下,我想寻找文件中的某个位置并读取特定的字节长度。
有人可以建议替代解决方案吗?
答案 0 :(得分:4)
从根本上说,这取决于字符编码。
如果您使用的是UTF-8并且文本中包含非ASCII字符,则字符偏移量会告诉您相对较少的 byte 偏移量。 (文件系统基本上是字节,而不是字符。)
但是,如果您使用固定宽度编码,则可以简单地将字符偏移量乘以字符宽度(以字节为单位),然后使用InputStream.skip
跳到文件的右侧部分:
FileInputStream
InputStreamReader
- 确保指定编码!同样,如果你使用的是可变宽度编码,例如UTF-8,你基本上不会从字符偏移中获得太多信息。