6.17. Przetwarzanie plików binarnych

Problem

Chcemy zapisywać i odczytywać z pliku dane binarne.

Rozwiązanie

Ponieważ łańcuchy języka Ruby nie rozróżniają danych tekstowych od binarnych, przetwarzanie plików zawierających dane binarne niczym nie różni się od przetwarzania plików tekstowych. Niemniej jednak ze względu na specyfikę systemu Windows, otwierając plik binarny, należy koniecznie użyć parametru b:

open('binary', 'wb') do |f|
  (0..100).step(10) { |b| f << b.chr }
end

s = open('binary', 'rb') { |f| f.read }
# => "\000\n\024\036(2<FPZd"

Przetwarzanie pliku binarnego bajt po bajcie daje się prosto realizować za pomocą iteratora each_byte; wartości przekazywane przez niego do bloku kodowego są liczbami, nie znakami, co w przypadku ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.