Buffered IO.
EXAMPLE
# File 'bigdata' could be a giga-byte size one! buf = CSV::IOBuf.new(File.open('bigdata', 'rb')) CSV::Reader.new(buf).each do |row| p row break if row[0].data == 'admin' end