# basic file input # The manual way f = open('/etc/passwd','r') f.each do | line | puts line end f.close # The better way - here Ruby will automatically take care # of closing the file for us when the block's done. File.open('/etc/passwd','r') do |f| f.each_line do | line | puts line end end # Manually, with a File object. fo = File.new('/etc/passwd',"r") fo.each_byte do | b | putc b; putc '=' end fo.close puts # Writing a file is best handled with that second form # Notice how File defines the '<<' method to append to the file, # and that it is automatically closed when the block exits. File.open('newfile.txt','w+') do |f| f << "Just a string" end # Let's just double check. We can easily slurp in a textfile by line # using to_a (or even splat ;)). str1 = File.open('newfile.txt','r') do |f| puts f.to_a end # Using splat like this is a bit controversial apparently, but I like it - # to me it says 'puts everything from f'. str1 = File.open('newfile.txt','r') do |f| puts *f end