用Ruby编写二进制文件

zzlelutf  于 2023-02-18  发布在  Ruby
关注(0)|答案(5)|浏览(189)

有没有一种简单的方法可以像在C/C++中那样将二进制数据写入二进制文件?例如,我如何创建一个带有序列化的4字节整数值的4字节文件,而不使用花哨的数学?

yduiuuwa

yduiuuwa1#

你可以使用Array#pack和String#unpack来转换二进制表示,再合并IO#write和IO#read,就可以了。

4c8rllxm

4c8rllxm2#

我最近在工作中遇到了类似的问题。我使用了BinData gem,它工作得很好。你只需做一些如下的事情:

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

你不需要记住任何Array#pack代码。

9njqaruj

9njqaruj3#

您可以使用Marshal.dumpMarshal.load方法。
这里有一个链接:www.example.com网站。http://en.wikipedia.org/wiki/Serialization#Ruby.
另一个将数据保存到文件:http://rubylearning.com/satishtalim/object_serialization.html.

qaxu7uf2

qaxu7uf24#

存在用于写入二进制数据的文件#binwrite:

File.binwrite("test.bin", my_binary_data)
vh0rcniy

vh0rcniy5#

在我看来,ruby并不是为这样的任务而生的,如果你需要写很多的二进制文件,最简单的方法就是写一些c函数,然后从ruby中调用它们,使用swig很容易,我现在正在做同样的事情来写一个raid模拟器。

相关问题