我是Ruby的新手,我正在研究一些katas,我坚持这个愚蠢的问题.我需要将1个文件的内容复制到1行代码中的新文件中
第一次尝试:
File.open(out, 'w').write(File.open(in).read)
Run Code Online (Sandbox Code Playgroud)
很好,但是我需要关闭文件:
File.open(out, 'w') { |outf| outf.write(File.open(in).read) }
Run Code Online (Sandbox Code Playgroud)
然后关闭阅读:
File.open(out, 'w') { |outf| File.open(in) { |inf| outf.write(outf.read)) } }
Run Code Online (Sandbox Code Playgroud)
这是我想出来的,但它看起来不像我的一行代码:(
想法?
问候,
And*_*imm 26
Ruby 1.9.3及更高版本有一个
File.write(name, string, [offset], open_args)
Run Code Online (Sandbox Code Playgroud)
允许您直接写入文件的命令.name是文件的名称,string是你想要写的,其他参数在我头上.
一些链接:https://github.com/ruby/ruby/blob/ruby_1_9_3/NEWS,http://bugs.ruby-lang.org/issues/1081(滚动到底部).
Osc*_*Ben 14
有很多方法.您可以简单地调用命令行,例如:
`cp path1 path2`
Run Code Online (Sandbox Code Playgroud)
但我想你正在寻找类似的东西:
File.open('foo.txt', 'w') { |f| f.write(File.read('bar.txt')) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14705 次 |
| 最近记录: |