在Ruby中编写二进制文件

时间:2009-06-02 20:52:15

标签: ruby

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

4 个答案:

答案 0 :(得分:32)

您可以使用Array#packString#unpack转换为二进制表示形式。将它们与IO#writeIO#read合并,然后离开。

答案 1 :(得分:23)

我最近遇到了类似的工作问题。我使用了BinData宝石,它起了作用。 你只需做一些事情:

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

,您无需记住任何Array#pack代码。

答案 2 :(得分:3)

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

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

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

答案 3 :(得分:-4)

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