在Ruby中编写二进制文件

是否有一种简单的方法将二进制数据写入二进制文件,就像我们在C / C ++中所做的那样? 例如,如何在不使用花哨数学的情况下创建具有序列化4字节整数值的4字节文件?

您可以使用Array#pack和String#unpack来转换为二进制表示forms。 将它们与IO#write和IO #read结合起来,然后就可以了。

我最近有一个类似的工作问题。 我使用了BinDatagem,它起了作用。 你只需要做一些事情:

 File.open('test.bin', 'wb') {|file| BinData::Int32be.new(12345).write(file) } 

而且您不需要记住任何Array#pack代码。

您可以使用Marshal.dumpMarshal.load方法。

这是一个链接: http : //en.wikipedia.org/wiki/Serialization#Ruby 。

另一个将数据保存到文件: http : //rubylearning.com/satishtalim/object_serialization.html 。

在我的拙见中,ruby不是为了这样的任务而做的。 如果你必须经常写二进制文件,最简单的方法是为它编写一些c函数并从ruby中调用它们,这很容易使用swig。 我现在正在做同样的事情来写一个raid模拟器。