In this particular case, I would recommend to use .NET API:

>>> include System::IO
=> Object
>>> stream = FileStream.new("c:\\temp\\a.txt", FileMode.Open, FileAccess.Read)
=> System.IO.FileStream
>>> "".Append(stream, stream.Length)
=> "hello"

Tomas

-----Original Message-----
From: ironruby-core-boun...@rubyforge.org 
[mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Håkon Clausen
Sent: Thursday, October 22, 2009 2:13 PM
To: ironruby-core@rubyforge.org
Subject: [Ironruby-core] byte[] to ruby string

Hello,

I'm struggling with converting a byte array into a ruby binary string.
Does anybody know how to make something like this pass?

require 'test/unit'
include System::IO
class Binstring < Test::Unit::TestCase

   def test_binstring_bytea
     fileName = 'flowers.jpg'

     #Ruby way
     data1 = File.read(fileName)

     #.Net
     fs = FileStream.new(fileName, FileMode.Open, FileAccess.Read);
     br = BinaryReader.new(fs);
     numBytes = FileInfo.new(fileName).Length;
     buff = br.ReadBytes(numBytes);
     data2 = System::Text::ASCIIEncoding.new.GetString(buff).to_s

     assert data1 == data2
   end

end

Regards,

Håkon


--
Håkon Clausen
Nosyko AS

"Nobody will ever need more than 640k RAM!" - Bill Gates, 1981.
_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org<mailto:Ironruby-core@rubyforge.org>
http://rubyforge.org/mailman/listinfo/ironruby-core


_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to