On Sep 6, 9:41 pm, optman <opt... / gmail.com> wrote:
> On 9 7 ,   1 24 , John Joyce <dangerwillrobinsondan... / gmail.com>
> wrote:
>
> I have seen a line of code like
>
> put( File.read(sourceFile),targetFile)
>
> if File.read() return the entire file content, what if sourceFile is a
> large file?
>

Then you are in trouble if you use File.read(). From your example I
can don't know what the method #put does, but one might logically
surmise that its function is to put a string (the output of File.read)
into targetFile.

Reading a file into a string and then writing that string to a file is
not a good solution for large files. The module ::FileUtils contains a
method #cp which very efficiently (by ruby standards) copies one file
to another -- without requiring that the entire contents of the source
file be copied into memory first.

Rio (http://rio.rubyforge.org) will also copy a file without requiring
the source file being read into memory first:

  rio('sourceFile') > rio('targetFile')