У меня есть:
o = File.new("ouput.txt", "rw+") File.new("my_file.txt").lines.reverse_each { |line| ????? line } o.close
Я не знаю, какой метод использовать для записи в файл вывода o
o
puts понимает массивы, поэтому вы можете упростить это до:
puts
File.open("f2.txt","w") {|o| o.puts File.readlines("f1.txt").reverse}
Для больших файлов избегайте использования readlines, так как это будет очень медленно / неэффективно.Подумайте об использовании такого драгоценного камня как Elif для такого рода вещей.
Ты захочешь сделать что-то более похожее ...
new_text = File.readlines('my_file').reverse.join File.open('my_file', 'w+') { |file| file.write(new_text) }
Изучите эту документацию , чтобы понять, что означает w+.
w+
Я знал, что это легко, но я не совсем понимаю, почему не задокументировано здесь ?
o = File.new("ouput.txt", "w+") File.new("my_file.txt").lines.reverse_each { |line| o.puts line } o.close