Am nevoie pentru a citi datele din baza de date și apoi salvați-l într-un fișier text.
Cum pot face asta în Ruby? Este acolo orice sistem de management de fișiere în Ruby?
Puteți utiliza versiunea scurta:
File.write('/path/to/file', 'Some glorious content')
Returnează lungimea scris; vezi ::scrie pentru mai multe detalii și opțiuni.
Pentru a adăuga la dosar, dacă acesta există deja, utilizați:
File.write('/path/to/file', 'Some glorious content', mode: 'a')
Aceasta este abordarea preferată în cele mai multe cazuri:
File.open(yourfile, 'w') { |file| file.write("your text") }
Atunci când un bloc este trecut la Fișier.deschide
, Fișierul obiect va fi închise automat atunci când blocul se termină.
Dacă tu nu't trece de la un bloc la `Fișier.deschide, trebuie să asigurați-vă că fișierul este corect închis și conținutul a fost scris la dosar.
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
Îl puteți găsi în documentația:
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;
}
Ruby Fișier class vă va oferi intrarile si iesirile de ::noi "și":: deschide-dar părinte, [IO clasa](http://ruby-doc.org/core/classes/IO.html), devine în profunzime a
#citi " și " a#a scrie`.
Zambri's de răspuns găsite aici este cel mai bun.
File.open("out.txt", '<OPTION>') {|f| f.write("write your stuff here") }
în cazul în care opțiunile de <OPȚIUNE>
sunt:
"r" - numai pentru Citire. Fișierul trebuie să existe.
"w" - a Crea un fișier gol pentru scris.
"o" - pentru a Adăuga un fișier.Fișierul este creat dacă nu există.
r+
Deschide un fișier pentru a actualiza atât de citire și scriere. Fișierul trebuie să existe.
w+
- de a Crea un fișier gol pentru a citi și scrie.
o+
Deschide un fișier pentru citire și adăugarea. Fișierul este creat dacă nu există.
În cazul tău, " w " este de preferat.
Pentru aceia dintre noi care învață prin exemplu...
Scrie un text într-un fișier astfel:
IO.write('/tmp/msg.txt', 'hi')
BONUS INFO ...
Citește astfel de prognoze
IO.read('/tmp/msg.txt')
Frecvent, vreau să citesc un fișier în clipboard ***
Clipboard.copy IO.read('/tmp/msg.txt')
Și alte ori, vreau să scriu ceea ce's în clipboard într-un fișier ***
IO.write('/tmp/msg.txt', Clipboard.paste)
*** Se presupune că aveți clipboard gem instalat
A se vedea: https://rubygems.org/gems/clipboard
Pentru a distruge anterioare conținutul fișierului, apoi scrie un nou șir la dosar:
open('myfile.txt', 'w') { |f| f << "some text or data structures..." }
Pentru a adăuga un fișier, fără a suprascrie vechiul continut:
open('myfile.txt', "a") { |f| f << 'I am appended string' }