【问题标题】:Read bytes between specific offsets in java [duplicate]读取java中特定偏移量之间的字节[重复]
【发布时间】:2014-04-15 21:15:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: java io


    【解决方案1】:

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

    如果您使用 UTF-8 并且文本中有非 ASCII 字符,那么字符偏移量对您必须寻找的 byte 偏移量的影响相对较小。 (文件系统基本上是字节,而不是字符。)

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-04-02
      • 2013-01-03
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      相关资源
      最近更新 更多