File I/O

Hello,

I have some text to be written to a file.
After receiving data from webrick server I modify it lil bit and then
write it to a file.

fd = File.open(“file.txt”, “w”)
fd.puts “#{data}”

The code doesnt give error and runs successfully however file.txt
doesnt contain any data.
Just puts “#{data}” gives a give output on console. Means its not empty.

Can anyone tell me why does it happen ?

name pipe wrote:

Hello,

I have some text to be written to a file.
After receiving data from webrick server I modify it lil bit and then
write it to a file.

fd = File.open(“file.txt”, “w”)
You can use

open(“file.txt”, “w”)

as well.

fd.puts “#{data}”
Why not just

fd.puts data

as for the empty file problem, maybe try to close fd:

fd.close

Peter
http://www.rubyrailways.com

Hello,
That works, or, even more Rubytastic:

open(“file.txt”, “w”) do |fd|
fd.puts data
end

Using the block automatically closes the file. :slight_smile:

–Jeremy

On Wed, 01 Nov 2006 13:50:49 -0000, name pipe [email protected]
wrote:

doesnt contain any data.
Just puts “#{data}” gives a give output on console. Means its not empty.

Can anyone tell me why does it happen ?

You’re never closing the file, which is why it’s empty (your writes are
never flushed).
Try either fd.close at the end, or (better IMHO) use the block form:

File.open(“file.txt”, “w”) do |fd|
fd.puts “#{data}” # or fd.puts data.to_s
end

Hope that helps.