繁体   English   中英

IO:Class的Ruby未定义方法“写入”(NoMethodError)

[英]Ruby undefined method `write' for IO:Class (NoMethodError)

当我运行我的红宝石文件时

ruby test.rb

其中一行:

IO.write("testfile.txt","123")

我得到

test.rb:1:in `<main>': undefined method `write' for IO:Class (NoMethodError)

那么,您希望得到什么样的答案? IO没有任何称为write类方法。 它最多具有binwrite实例方法#write

因此,您可以使用binwrite (http://rubydoc.info/stdlib/core/1.9.3/IO.binwrite)或使用File类并完全使用

File.open("testfile.txt", "w") { |f| f << "123" }

编辑:显然有一个从Ruby 1.9.3开始的IO.write方法。 但是,在任何较早的1.9或1.8版本中都没有这种方法。

有几个问题,

  1. IO没有编写类方法,这就是为什么您看到异常的原因
  2. 如果要写入文件,则应使用File类

    File.open(“ testfile.txt”,“ w”)做| file | file.write(“ 123”)结束

我认为您可能刚开始使用Ruby,因此最好阅读一本有关红宝石的书籍,其中会介绍其中的一些基础知识。 我使用过David Flanagan和Matz的“ Ruby编程语言”,但是很多人使用了Dave Thomas,Chad Fowler和Andy Hunt所著的Pickaxe书或“ Programming Ruby”。

IO没有“内置”写入方法。 File.write应该做这个工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM