Ruby 对待文件与 I/O 操作也是面向对象的。
Ruby 的 I/O 系统
IO 类处理所有的输入与输出流。
IO 类
IO 对象表示可读可写的到磁盘文件,键盘,屏幕或设备的连接。
程序启动以后会自动设置 STDERR,STDIN,STDOUT 这些常量。STD 表示 Standard,ERR 是 Error,IN 是 Input,OUT 是 Output。
标准的输入,输出,还有错误流都封装到了 IO 的实例里面。做个实验:
>> STDERR.class => IO >> STDERR.puts("problem!") problem! => nil >> STDERR.write("problem!\n") problem! => 9
STDERR 是一个 IO 对象。如果一个 IO 对象开放写入,你可以在它上面调用 puts,你想 puts 的东西会写入到 IO 对象的输出流里。IO 对象还有 print 与 write 方法。 write 到 IO 对象的东西不会自动添加换行符,返回的值是写入的字节数。