为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Ruby中写入文件?

如何在Ruby中写入文件?

BIG阳 2019-11-05 10:47:08
我需要从数据库中读取数据,然后将其保存在文本文件中。如何在Ruby中做到这一点?Ruby中有文件管理系统吗?
查看完整描述

4 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

Ruby File类将为您提供详细信息::new,::open但其父类IO类将深入到#readand #write。


查看完整回答
反对 回复 2019-11-05
?
HUH函数

TA贡献1836条经验 获得超4个赞

您在寻找以下物品吗?


File.open(yourfile, 'w') { |file| file.write("your text") }


查看完整回答
反对 回复 2019-11-05
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

您可以使用简短版本:


File.write('/path/to/file', 'Some glorious content')

它返回写入的长度;有关更多详细信息和选项,请参见:: write。


要附加到文件(如果已经存在),请使用:


File.write('/path/to/file', 'Some glorious content', mode: 'a')


查看完整回答
反对 回复 2019-11-05
?
Qyouu

TA贡献1786条经验 获得超11个赞

在大多数情况下,这是首选方法:


 File.open(yourfile, 'w') { |file| file.write("your text") }

当将一个块传递给File.open时,该块终止时File对象将自动关闭。


如果您没有将块传递给File.open,则必须确保文件已正确关闭并且内容已写入文件。


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

您可以在文档中找到它:


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;

}


查看完整回答
反对 回复 2019-11-05
  • 4 回答
  • 0 关注
  • 862 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信