我需要从数据库中读取数据,然后将其保存在文本文件中 .
我怎么能在Ruby中做到这一点? Ruby中有任何文件管理系统吗?
您可以使用简短版本:
File.write('/path/to/file', 'Some glorious content')
它返回写入的长度;有关详细信息和选项,请参阅::write .
要附加到文件,如果它已经存在,请使用:
File.write('/path/to/file', 'Some glorious content', mode: 'a')
在大多数情况下,这是首选方法:
File.open(yourfile, 'w') { |file| file.write("your text") }
当块传递给 File.open 时,当块终止时,File对象将自动关闭 .
File.open
如果未将块传递给 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
你可以在documentation找到它:
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; }
对于我们这些通过实例学习的人......
将文本写入文件,如下所示:
IO.write('/tmp/msg.txt', 'hi')
奖金信息......
像这样读回来
IO.read('/tmp/msg.txt')
通常,我想将文件读入我的剪贴板***
Clipboard.copy IO.read('/tmp/msg.txt')
有时,我想把剪贴板中的内容写成文件***
IO.write('/tmp/msg.txt', Clipboard.paste)
***假设您已安装剪贴板gem
见:https://rubygems.org/gems/clipboard
Zambri的回答found here是最好的 .
File.open("out.txt", '<OPTION>') {|f| f.write("write your stuff here") }
您对 <OPTION> 的选项是:
<OPTION>
r - 只读 . 该文件必须存在 .
r
w - 创建一个用于写入的空文件 .
w
a - 附加到文件 . 如果文件不存在,则创建该文件 .
a
r+ - 打开文件以进行更新读取和写入 . 该文件必须存在 .
r+
w+ - 为读取和写入创建一个空文件 .
w+
a+ - 打开文件进行阅读和追加 . 如果文件不存在,则创建该文件 .
a+
在您的情况下, w 是更可取的 .
Ruby File class将为您提供 ::new 和 ::open 的详细信息,但其父级IO class深入 #read 和 #write .
::new
::open
#read
#write
要销毁文件的先前内容,请将新字符串写入文件:
open('myfile.txt', 'w') { |f| f << "some text or data structures..." }
要附加到文件而不覆盖其旧内容:
open('myfile.txt', "a") { |f| f << 'I am appended string' }
你在寻找以下?
7 回答
您可以使用简短版本:
它返回写入的长度;有关详细信息和选项,请参阅::write .
要附加到文件,如果它已经存在,请使用:
在大多数情况下,这是首选方法:
当块传递给
File.open
时,当块终止时,File对象将自动关闭 .如果未将块传递给
File.open
,则必须确保文件已正确关闭且内容已写入文件 .你可以在documentation找到它:
对于我们这些通过实例学习的人......
将文本写入文件,如下所示:
奖金信息......
像这样读回来
通常,我想将文件读入我的剪贴板***
有时,我想把剪贴板中的内容写成文件***
***假设您已安装剪贴板gem
见:https://rubygems.org/gems/clipboard
Zambri的回答found here是最好的 .
您对
<OPTION>
的选项是:r
- 只读 . 该文件必须存在 .w
- 创建一个用于写入的空文件 .a
- 附加到文件 . 如果文件不存在,则创建该文件 .r+
- 打开文件以进行更新读取和写入 . 该文件必须存在 .w+
- 为读取和写入创建一个空文件 .a+
- 打开文件进行阅读和追加 . 如果文件不存在,则创建该文件 .在您的情况下,
w
是更可取的 .Ruby File class将为您提供
::new
和::open
的详细信息,但其父级IO class深入#read
和#write
.要销毁文件的先前内容,请将新字符串写入文件:
要附加到文件而不覆盖其旧内容:
你在寻找以下?