Puts vs. write for writing to a file

I’ve done some googling, some looking in the pickaxe(2) book (using the
index), and some experimenting in irb, but I can’t readily see the
difference
between puts and write (except that write doesn’t work in all cases in
irb:)

irb(main):044:0> write “\nmorF\n\n”
NoMethodError: undefined method `write’ for main:Object

So what is the difference (specifically for the case of writing to a
file)
and/or when should I use one vs. the other?

Randy K.

Randy K. wrote:

I’ve done some googling, some looking in the pickaxe(2) book (using the
index), and some experimenting in irb, but I can’t readily see the difference
between puts and write (except that write doesn’t work in all cases in irb:)

irb(main):044:0> write “\nmorF\n\n”
NoMethodError: undefined method `write’ for main:Object

So what is the difference (specifically for the case of writing to a file)
and/or when should I use one vs. the other?

On a File object (actually, they’re defined on IO), write just writes
the string given to the file unchanged. IO#puts adds a newline at the
end of the string if there isn’t one already.

On 10/16/07, Alex Y. [email protected] wrote:

On a File object (actually, they’re defined on IO), write just writes
the string given to the file unchanged. IO#puts adds a newline at the
end of the string if there isn’t one already.
Furthermore puts formats array instances as follows

array_instance.join("\n").

Robert

On Tuesday 16 October 2007 08:31 am, Alex Y. wrote:

On a File object (actually, they’re defined on IO), write just writes
the string given to the file unchanged. IO#puts adds a newline at the
end of the string if there isn’t one already.

Ahha, thank you very much!

(Now, knowing that, I can see it in the pickaxe-- I guess there were too
many
other wording differences between the two for me to quickly spot the
significant (for me) difference. For example, puts (on page 512) is
described in terms of writing an object, while write (page 515) is
described
in terms of writing a string.)

Randy K.

On Tue, Oct 16, 2007 at 09:31:27PM +0900, Alex Y. wrote:

and/or when should I use one vs. the other?

On a File object (actually, they’re defined on IO), write just writes
the string given to the file unchanged. IO#puts adds a newline at the
end of the string if there isn’t one already.

I guess the next question, then, is “What’s the difference between print
and write for writing to a file?”

Trying to answer my own question with irb, I see that a successful write
has a return value equal to the number of characters it writes to the
file, while a successful print returns nil. Is that the only difference
in a file writing context?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs