I'm calculating md5 checksums on very large files (2 GB). This is a safe 
way to do so, right? Also... is the file closed when the block exits? 
I'm using 'rb' as this is used on Windows and Linux computers.

md5 = Digest::MD5.new()
File.open(file, 'rb').each {|line| md5.update(line)}