666 Stimmen

Wie schreibe ich in Ruby in eine Datei?

Ich muss die Daten aus der Datenbank lesen und dann in einer Textdatei speichern.

Wie kann ich das in Ruby machen? Gibt es ein Dateiverwaltungssystem in Ruby?

38voto

l3x Punkte 29224

Für diejenigen von uns, die durch Beispiel lernen...

Schreiben Sie Text in eine Datei wie folgt:

IO.write('/tmp/msg.txt', 'hi')

BONUS INFORMATION ...

Lesen Sie es wie folgt zurück

IO.read('/tmp/msg.txt')

Oft möchte ich eine Datei in meine Zwischenablage einlesen ***

Clipboard.copy IO.read('/tmp/msg.txt')

Und manchmal möchte ich das, was sich in meiner Zwischenablage befindet, in eine Datei schreiben ***

IO.write('/tmp/msg.txt', Clipboard.paste)

*** Vorausgesetzt, Sie haben das Clipboard-Gem installiert

Siehe: https://rubygems.org/gems/clipboard

1 Stimmen

Vorsicht vor der IO.write-Option, mit der der Dateiinhalt anstatt angehängt zu überschreiben. Das Anhängen mit IO.write ist etwas umständlich.

0 Stimmen

Nicht sicher, worüber du sprichst? Der Befehl IO.write benötigt diese Option nicht, um in eine Datei zu schreiben. Ich würde vorsichtig sein und die Datei entweder im /tmp-Verzeichnis oder im aktuellen Verzeichnis speichern; Andernfalls könnte eine Errno::ENOENT: No such file or directory @ rb_sysopen Fehlermeldung erscheinen und die erstellte Datei eine Größe von 0 Bytes haben.

29voto

Marko Tunjic Punkte 1701

Um den vorherigen Inhalt der Datei zu zerstören und dann einen neuen String in die Datei zu schreiben:

open('myfile.txt', 'w') { |f| f << "some text or data structures..." } 

Um an eine Datei anzuhängen, ohne ihren alten Inhalt zu überschreiben:

open('myfile.txt', "a") { |f| f << 'Ich bin ein angehängter String' }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X