【问题标题】:Java: How to check if a byte[] array exists in a file? [duplicate]Java:如何检查文件中是否存在 byte[] 数组? [复制]
【发布时间】:2018-05-08 22:17:50
【问题描述】:

我想出了一个想法,读取一个与输入大小相同的 byte[] 数组,并一一检查。但似乎效率不高。有没有办法通过使用滚动哈希来解决它?

【问题讨论】:

  • 我说得对吗,你有一个字节数组 X,你有一个文件,你想检查 X 是否在文件数据中的某个地方?
  • 显示一些代码,然后提出一个具体问题
  • 您可以在整个文件的大小为字节数组的滑动窗口上计算滚动哈希(Rabin Karp 或其他),并检查哈希是否相同。如果相同,则逐字节比较。由于计算滚动哈希是 O(​​1),因此您将能够解决 O(file_size) 中的问题。

标签: java file


【解决方案1】:

如果您使用的是 java 8 或更高版本,请检查

java.util.Optional<T>

文档在这里 Optional 如果我理解你的意思是正确的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-27
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多