Cached read wrapper for Ruby IOs (useful for parsers)