我需要將很多對象序列化爲一個文件(多個GB)。我們選擇在這個項目中使用Google的協議緩衝區來處理其他事情,所以我想我會使用它來序列化從線路接收的對象。這似乎工作:如何在ruby中反序列化多個對象1.8.7 lazily
File.open(file_name, 'ab') do |f|
some_objects.each { |some_object|
some_object.serialize(f)
}
end
deserializtion是什麼給我的問題。我看到其他人做這樣一個對象:
File.open(file_name, 'r') do |f|
no = some_object.parse(f)
end
但是,只有一個。我試着這樣做:
File.open(file_name, 'r').each do |f|
no = some_object.parse(f)
end
但是,引發此異常:
Uncaught exception: undefined method `<<' for false:FalseClass
我需要讓所有的人都懶洋洋地評估他們。有什麼想法嗎?請隨時就這些代碼的性能給出任何建議,因爲我會做GB的信息。謝謝你的時間。
順便說一句,我知道我需要升級我的紅寶石版本,但由於這是一個內部的東西,我沒有能夠從老闆那裏得到升級的時間。
謝謝。在得到更多的澄清之後,我發現我們正在爲一定數量的對象使用另一個協議緩衝區。這讓我更加接近。 – user197674