我正在编写一个脚本来读取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
的父级,应该可以使用,没有要求或包含。我几乎完全按照David Flanagan指南中的一个样本;我甚至可以在Ruby安装中找到源readbytes.rb
文件。
请注意,我在Windows 7上运行MRI 1.8.7。
答案 0 :(得分:3)
readbytes
不是IO
或File
的成员(您在哪里找到了文档中的条目?)。使用IO#read([length])
从文件中读取字节。您可能需要String#unpack
将字符串转换为您想要比较的魔术标题。