我需要閱讀的MB塊文件中,有一個更清潔的方式在Ruby中做到這一點:閱讀數據塊文件在Ruby中
FILENAME="d:\\tmp\\file.bin"
MEGABYTE = 1024*1024
size = File.size(FILENAME)
open(FILENAME, "rb") do |io|
read = 0
while read < size
left = (size - read)
cur = left < MEGABYTE ? left : MEGABYTE
data = io.read(cur)
read += data.size
puts "READ #{cur} bytes" #yield data
end
end
是的,這工作。但是,我認爲如果剩餘的字節數小於塊大小,IO.read會拋出。我認爲這是因爲我讀過IO.readbyte,它會拋出TruncatedDataError。看起來這不適用於閱讀。對我來說是一個過度的壓力。 謝謝! – teleball 2009-11-05 19:11:24