title: what does .seek means in ruby
body: <p>what is the purpose of <code>f.seek(0)</code> in this script? Why do we need to <code>rewind(current_file)</code>, if the file has already been opened by the program?</p>
  
  <pre><code>input_file = ARGV[0]
  
  def print_all(f)
      puts f.read()
  end
  
  def rewind(f)
      f.seek(0)
  end
  
  def print_a_line(line_count,f)
  puts "#{line_count} #{f.readline()}"
  end
  
  current_file = File.open(input_file)
  
  puts "First Let's print the whole file:"
  puts # a blank line
  
  print_all(current_file)
  
  puts "Now Let's rewind, kind of like a tape"
  
  rewind(current_file)
  
  puts "Let's print the first line:"
  
  current_line = 1
  print_a_line(current_line, current_file)
  </code></pre>