Ich brauche eine Datei in MB Stücke zu lesen, gibt es einen sauberere Weg, dies in Ruby zu tun:eine Datei in Blöcken in Ruby Read
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
Ja, das funktioniert. Ich dachte jedoch, dass IO.read würde werfen, wenn die Anzahl der verbleibenden Bytes weniger als Chunk-Größe war. Ich dachte das, weil ich über IO.readbyte gelesen hatte, das TruncatedDataError werfen wird. Sieht so aus, als ob das NICHT zu lesen gilt. Ein Überbau von meiner Seite. Danke! – teleball