Ich muss die Daten aus der Datenbank lesen und sie dann in einer Textdatei speichern.
Wie kann ich das in Ruby machen? Gibt es ein Dateiverwaltungssystem in Ruby?
Die Ruby File-Klasse gibt Ihnen die Vor- und Nachteile von ::new
und ::open
doch übergibt die übergeordnete Klasse , die IO-Klasse , die Tiefe von #read
und #write
.
Suchen Sie Folgendes?
quelle
yourfile
ist eine Variable, die den Namen der zu schreibenden Datei enthält.f.write
eine Ausnahme ausgelöst wird .File.write('filename', 'content')
IO.write('filename', 'content')
Sie können die Kurzversion verwenden:
Es gibt die geschriebene Länge zurück; Weitere Details und Optionen finden Sie unter :: write .
Verwenden Sie zum Anhängen an die Datei, falls diese bereits vorhanden ist:
quelle
Dies ist in den meisten Fällen der bevorzugte Ansatz:
Wenn ein Block an übergeben wird,
File.open
wird das Dateiobjekt automatisch geschlossen, wenn der Block beendet wird.Wenn Sie keinen Block an übergeben
File.open
, müssen Sie sicherstellen, dass die Datei korrekt geschlossen ist und der Inhalt in die Datei geschrieben wurde.Sie finden es in der Dokumentation :
quelle
File.open
blog.rubybestpractices.com/posts/rklemme/… es wird auch in der offiziellen Dokumentation erwähntDie Antwort von Zambri , die hier gefunden wird, ist die beste.
Wo sind Ihre Optionen für
<OPTION>
:r
- Schreibgeschützt. Die Datei muss vorhanden sein.w
- Erstellen Sie eine leere Datei zum Schreiben.a
- An eine Datei anhängen. Die Datei wird erstellt, wenn sie nicht vorhanden ist.r+
- Öffnen Sie eine Datei, um sowohl das Lesen als auch das Schreiben zu aktualisieren. Die Datei muss vorhanden sein.w+
- Erstellen Sie eine leere Datei zum Lesen und Schreiben.a+
- Öffnen Sie eine Datei zum Lesen und Anhängen. Die Datei wird erstellt, wenn sie nicht vorhanden ist.In Ihrem Fall
w
ist vorzuziehen.quelle
Für diejenigen von uns, die mit gutem Beispiel lernen ...
Schreiben Sie Text in eine Datei wie diese:
BONUS INFO ...
Lies es so zurück
Häufig möchte ich eine Datei in meine Zwischenablage einlesen ***
Und manchmal möchte ich schreiben, was sich in meiner Zwischenablage befindet, in eine Datei ***
*** Angenommen, Sie haben das Zwischenablage-Juwel installiert
Siehe: https://rubygems.org/gems/clipboard
quelle
IO.write
Option den Dateiinhalt überschreibt, anstatt ihn anzuhängen. Mit IO.write anhängen ist etwas langweilig.Errno::ENOENT: No such file or directory @ rb_sysopen
Nachricht angezeigt und die Datei mit einer Größe von 0 Byte erstellt.Um den vorherigen Inhalt der Datei zu zerstören, schreiben Sie eine neue Zeichenfolge in die Datei:
So hängen Sie eine Datei an, ohne den alten Inhalt zu überschreiben:
quelle