Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现,所有的 I/O 方法派生自 IO 类,类 IO 提供了所有基础的方法,比如 read、 write、 gets、 puts、 readline、 getc 和 printf,我们接下来就来分别看下这些个函数。
首先来看一下输出打印信息的函数。
puts 语句指示程序显示存储在变量中的值,这将在每行末尾添加一个新行,来看实例:
#!/usr/bin/ruby
val1 = "1"
val2 = "2"
puts val1
puts val2
gets 语句可用于获取来自名为 STDIN 的标准屏幕的用户输入,下面的实例将提示用户输入一个值,该值将被存储在变量 val 中,最后会被打印在 STDOUT 上:
#!/usr/bin/ruby
puts "Enter a value :"
val = gets
puts val
与 puts 语句不同,puts 语句输出整个字符串到屏幕上,而 putc 语句可用于依次输出一个字符,来看实例:
#!/usr/bin/ruby
str="Hello Ruby!"
putc str #输出H
print 语句与 puts 语句类似,唯一的不同在于 puts 语句在输出内容后会跳到下一行,而使用 print 语句时,光标定位在同一行,实例如下:
#!/usr/bin/ruby
print "1"
print "2"
接下来我们就来尝试操作实际的数据文件。
我们可以使用 File.new 方法创建一个 File 对象用于读取、写入或者读写,读写权限取决于 mode 参数。最后,我们可以使用 File.close 方法来关闭该文件,像下面这样:
aFile = File.new("filename", "mode")
# ... 处理文件
aFile.close
可以使用 File.open 方法创建一个新的 file 对象,并把该 file 对象赋值给文件。但是,File.open 和 File.new 方法之间有一点不同。不同点是 File.open 方法可与块关联,而 File.new 方法不能,如下:
File.open("filename", "mode") do |aFile|
# ... process the file
end
来看下打开文件的不同模式:
模式 | 描述 |
---|---|
r | 只读模式。文件指针被放置在文件的开头。这是默认模式。 |