Подтвердить что ты не робот

Запись двоичного файла в Ruby

Есть ли простой способ записи двоичных данных в двоичный файл, как мы делали в C/С++? Например, как я могу создать 4-байтовый файл с сериализованным 4-байтовым целочисленным значением без использования причудливой математики?

4b9b3361

Ответ 1

Вы можете использовать Array # pack и String # unpack для преобразования в и из двоичных представлений. Объедините их с IO # write и IO # read, и прочь вы идете.

Ответ 2

Недавно у меня была аналогичная проблема для работы. Я использовал BinData gem, и это сработало. Вы просто делаете что-то вроде:

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

и вам не нужно запоминать какие-либо коды Array#pack.

Ответ 4

В моем скромном обращении рубин не был создан для таких задач. Если вам приходится много писать в двоичных файлах, было бы проще написать некоторые c-функции для этого и вызвать их из ruby, что довольно просто с помощью swig. Я делаю то же самое в настоящий момент, чтобы написать симулятор рейдов.