From: Jan Svitok Date: 2006-10-14T16:08:49+09:00 Subject: Re: File.puts or File.write ? On 10/14/06, Wilson Bilkovich wrote: > On 10/13/06, Justin Collins wrote: > > Joe Ruby MUDCRAP-CE wrote: > > > For general purpose file writing, does it matter whether puts or write > > > is used? From the docs, it seems like puts should be used for strings, > > > while write can be used for anything. I'm not really sure what > > > difference there is between the two, but the docs say something about > > > puts adding newlines or something. > > > > > > Thanks, > > > Joe > > > > > > > > > > Yes, using puts adds a newline to the end of the output, while write and > > print do not. So, yes, it can matter a great deal which one you use. > > > > puts only does that when you're not in binary mode, though. I have yet > to use 'write' for anything, at least as far as I can recall. And IIRC write is atomic - 'puts' consists of two 'write's, so there may be a thread switch between them (at least on current implementation). In other words, if writing to a file from more threads, 'write (string + "\n")' should be always right, while using 'puts string' the end-of-lines might be crossed. (string1 string2 eol1 eol2).