< p > < code > CSV.open 在块退出时会将数据存储在内存中并一次性写入文件吗?还是会自动分批写入?
require 'csv'
CSV.open('result.csv', 'wb') do |csv|
while row = next_row
csv << row
end
end
CSV.open('foo', 'wb') {|x| loop { x << [1,2,3] ; sleep 0.001 } }
并在另一个 shell 中监视foo
文件的大小来进行测试。每隔约3秒钟,缓冲区就会填满8196字节并写入磁盘。 - user513951