0

我正在编写一个脚本来从 PNG 文件中读取标头字节。我想使用该readbytes方法File

f = File.open("Boots.png", "rb:binary")
header = f.readbytes(8)

但我NoMethodError在第二行得到一个:

NoMethodError: undefined method `readbytes` for #<File:Boots.png>
    from (irb):2
    from #:0

为什么?据我从文档中可以看出,readbytes它是类的一部分,是 的IO父级File,并且应该可供我使用,无需要求或包含。我几乎完全按照大卫弗拉纳根指南中的样本进行操作;我什至可以readbytes.rb在我的 Ruby 安装中找到源文件。

请注意,我在 Windows 7 上运行 MRI 1.8.7。

4

1 回答 1

3

readbytes不是IOor的成员File(您在哪里找到文档中的条目?)。用于IO#read([length])从文件中读取字节。您可能需要String#unpack将字符串转换为要比较的魔术头。

于 2013-11-03T03:09:36.277 回答