Revert: do no close input file; use io.Reader

Using io.Reader is less restrictive than using io.ReadCloser (would
not allow to byte streams like bufio.Reader or bytes.Reader anymore).