Я писал рубиновую программу, которая объединяет содержимое двух файлов. Например, если торрент был загружен два раза отдельно, он пытается объединить их содержимое для блоков, которые были завершены.Изменение потока ввода-вывода на месте? Ruby
Итак, я искал метод, который изменяет поток только в нужном месте и сохраняет только этот блок вместо сохранения всего потока снова.
Я читаю файл в блоках из 16 KiBs и как мне «заменить» (не добавлять) содержимое этих 16 KiB, чтобы только эти байты записывались на диск, а не весь файл, каждый раз писать!
Вид,
#Doesn't exist unfortunately.
#By default it appends instead of replacing, so file size grows.
IO.write(file_name, content, offset, :replace => true)
ли существует метод, который достигает своего рода этой функциональности?
Код здесь, если кому интересно. - http://code.google.com/p/vikrant-incubator/source/browse/ruby/merge_incomplete.rb –