【问题标题】:Read binary file backwards向后读取二进制文件
【发布时间】:2011-01-31 01:06:54
【问题描述】:

我需要做的是向后读取文件。我想要做的是向后读取文件然后向后移动查看值是否= G或十六进制47然后查看下一个值是否= N或十六进制4E然后查看下一个值是否= P .我目前正在使用二进制IO读取然后使用...

这是一个图片链接,可以更好地表达我的意思..http://www.facebook.com/photo.php?pid=2189508&l=92393dfccb&id=1283154964

  String s = Integer.toHexString(hexIn);
  if(s.length() < 2){
   s = "0" + Integer.toHexString(hexIn);
  }

为了确保十六进制最后不会漏掉任何零(我在这个网站上找到的::)

【问题讨论】:

  • 如果您提到了您在更高级别上尝试做的事情,这将对我们有所帮助...
  • 读入一个 64k 的缓冲区并向后扫描
  • 您已经提出了一个关于向后读取文件的问题并接受了答案:stackoverflow.com/questions/4841148/…。通过再次问同样的问题来避免浪费人们的时间。或者至少问一个“明确的问题”。请注意这里的所有建议都与您上次发布的相同,因为您的问题令人困惑!
  • @camickr 感谢您指出这个骗局……您也可以投票将其作为副本关闭。

标签: java file hex rad


【解决方案1】:

与其反向读取文件并查找您的字符串,为什么不直接反转您的字符串并在文件中向前查找它呢?这似乎是一个更简单的解决方案?

【讨论】:

    【解决方案2】:

    你可以想象,倒着读是不正常的,你必须做一些奇怪的事情。

    但是您可以自己将索引放入文件中。如果你这样做了,把它放在最后,读一个字节,然后把它放在 (end-1),读一个字节,等等,你就成功了。

    这会非常慢,所以你要做的就是尽可能多地读入缓冲区,从末尾开始,然后向后遍历缓冲区,然后重新填充缓冲区。

    This tutorial 告诉你所有关于 Java 中的随机访问 I/O。

    【讨论】:

      【解决方案3】:

      RandomAccessFile 将是用于向后读取文件的最简单的类。

      【讨论】:

        猜你喜欢
        • 2021-02-16
        • 1970-01-01
        • 1970-01-01
        • 2017-10-01
        • 2011-09-03
        • 2016-01-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多