Ich muss die Daten aus der Datenbank auslesen und sie dann in einer Textdatei speichern.
Wie kann ich das in Ruby tun? Gibt es ein Dateiverwaltungssystem in Ruby?
Sind Sie auf der Suche nach dem Folgenden?
File.open(yourfile, 'w') { |file| file.write("your text") }
Dies ist in den meisten Fällen der bevorzugte Ansatz:
File.open(yourfile, 'w') { |file| file.write("your text") }
Wenn ein Block an File.open
übergeben wird, wird das File-Objekt automatisch geschlossen, wenn der Block beendet ist.
Wenn Sie keinen Block an File.open
übergeben, müssen Sie sicherstellen, dass die Datei korrekt geschlossen ist und der Inhalt in die Datei geschrieben wurde.
begin
file = File.open("/tmp/some_file", "w")
file.write("your text")
rescue IOError => e
#some error occur, dir not writable etc.
ensure
file.close unless file.nil?
end
Sie können es in der Dokumentation finden:
static VALUE rb_io_s_open(int argc, VALUE *argv, VALUE klass)
{
VALUE io = rb_class_new_instance(argc, argv, klass);
if (rb_block_given_p()) {
return rb_ensure(rb_yield, io, io_close, io);
}
return io;
}
Die Ruby [File-Klasse] (http://ruby-doc.org/core/classes/File.html) gibt Ihnen die Ins und Outs von ::new
und ::open
, aber ihre Mutter, die [IO-Klasse] (http://ruby-doc.org/core/classes/IO.html), geht in die Tiefe von #read
und #write
.