muszę odczytać pliku w MB kawałki, czy istnieje przejrzysty sposób to zrobić w Ruby:Czytaj plik w kawałkach w 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
Tak, to działa. Jednak myślałem, że IO.read rzuciłby, gdyby pozostała liczba bajtów była mniejsza niż rozmiar porcji. Pomyślałem, że ponieważ przeczytałem o IO.readbyte, który rzuci TruncatedDataError. Wygląda na to, że NIE odnosi się do odczytu. Oversite z mojej strony. Dzięki! – teleball