Je dois lire les données de la base de données et les enregistrer dans un fichier texte.
Comment puis-je faire cela en Ruby ? Existe-t-il un système de gestion de fichiers en Ruby ?
C'est l'approche privilégiée dans la plupart des cas :
File.open(yourfile, 'w') { |file| file.write("your text") }
Lorsqu'un bloc est passé à File.open
, l'objet File sera automatiquement fermé à la fin du bloc.
Si vous ne passez pas de bloc à File.open
, vous devez vous assurer que le fichier est correctement fermé et que le contenu a été écrit dans le fichier.
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
Vous pouvez le trouver dans la [documentation][1] :
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;
}
[1] : http://ruby-doc.org/core-2.0/File.html#method-c-new-label-Examples
La [classe File] (http://ruby-doc.org/core/classes/File.html) de Ruby vous donnera les tenants et aboutissants de ::new
et ::open
mais son parent, la [classe IO] (http://ruby-doc.org/core/classes/IO.html), entre dans le détail de #read
et #write
.