Jeg må lese dataene ut av databasen og deretter lagre dem i en tekstfil.
Hvordan kan jeg gjøre det i Ruby? Finnes det noe filhåndteringssystem i Ruby?
Dette er den foretrukne tilnærmingen i de fleste tilfeller:
File.open(yourfile, 'w') { |file| file.write("your text") }
Når en blokk sendes til File.open
, vil File-objektet automatisk lukkes når blokken avsluttes.
Hvis du ikke sender en blokk til File.open
, må du sørge for at filen er riktig lukket og at innholdet ble skrevet til filen.
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
Du finner den i dokumentasjon:
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 File class vil gi deg inn og ut av ::new
og ::open
, men dens overordnede, IO class, kommer inn i dybden av #read
og #write
.