Jeff Massung wrote:
> Sorry for [what is probably] a very newbie question, but is there any way
> to specify just a straight byte array in Ruby? I want to just be able to
> write the array directly to a binary file, but using regular ints will (I'm
> assuming) write 32-bit values, and not bytes.
>
> I'm sure there is a very simple way to do what I want (probably just using
> the IO class), but I haven't seen a writebytes or similar function yet. I'd
> even consider using strings if needed.
>
> Thanks.
>
> --
> Best regards,
>  Jeff Massung       jma[at]mfire.com
>  http://www.jm-basic.com/



IO#putc writes Fixnums etc. as 8-bit values.

#--------------------------------------
File.open('wbtest.txt', 'wb') do |wbf|
  ba = ['A', 66, 'Chop', ?D, "\n"]
  ba.each {|b| wbf.putc b}
  wbf.write("END\n")
end

File.open('wbtest.txt', 'rb') { |wbf| p wbf.read }  # Check what's there

#=> "ABCD\nEND\n"
#--------------------------------------



# Add new IO method ??
#
# class IO
#   def writebytes(arr)
#     arr.each {|b| putc b}
#   end
# end
#
# wbf.writebytes(ba)


daz