陈斌彬的技术博客

Stay foolish,stay hungry

Ruby - 输入输出(原创)

字符的输入输出

1. puts & gets

我们已经多次使用过(比如上一实验的作业)。gets 用于从键盘输入字符,puts 用于输出字符在显示器。我们还是举例:

#!/usr/bin/ruby
puts "please input your words: "

words = gets
puts words

gets 语句把用户的输入存储在变量中,puts 语句在屏幕上显示出用户输入的内容。

img

2. putc

putc 与 puts 不同,puts 语句输出一整个字符串到屏幕上,而 putc 只是输出一个字符:

str = "hello"

puts str
putc str

可见输出结果是:

img

3. print

print 语句也和 puts 语句类似,不同的是,puts 语句在完成输出后会跳到下一行,而使用 print 语句则不会。

puts "Tom"
print "Mary"
puts "John"

输出结果将会是:

img

对文件(File)的操作

1. 打开和关闭文件

(1) File.new 方法

使用 File.new 方法创建一个 File 对象做读写操作,读写权限(mode)可以指定。格式是这样的:

file_1 = File.new("文件名","模式")
    #……文件读写操作
file_1.close   # 操作完后记得关闭文件

(2) File.open 方法

可以使用 File.open 方法打开一个文件,创建一个 file 对象,并把该对象赋值给文件。File.open 与 File.new 是不同的:File.open 方法可以与块关联,而 File.new 方法不能。

File.open("文件名", "模式") do |file_1|
   #……文件读写操作
end

打开文件有几种不同的模式,对应不同的权限:

  • r 只读模式。文件指针被放置在文件的开头。默认的模式。
  • r+ 读写模式。文件指针被放置在文件的开头。
  • w 只写模式。如果文件存在,则重写文件。如果文件不存在,则创建一个新文件用于写入。
  • w+ 读写模式。如果文件存在,则重写已存在的文件。如果文件不存在,则创建一个新文件用于读写。
  • a 只写模式。如果文件存在,则文件指针被放置在文件的末尾。也就是说,文件是追加模式。如果文件不存在,则创建一个新文件用于写入。
  • a+ 读写模式。如果文件存在,则文件指针被放置在文件的末尾。也就是说,文件是追加模式。如果文件不存在,则创建一个新文件用于读写。

2. 读写文件

刚才介绍的只是新建和打开一个文件,而接下来是具体的,对文件的操作。

(1) sysread 方法

可以使用方法 sysread 来读取文件的内容,比如我们先创建了一个 secret.txt 文件,里面有一些内容,现在用 sysread 方法把它读出来:

#!/usr/bin/ruby

file_1 = File.open("secret.txt","r")

words = file_1.sysread(20)
puts words

file_1.close

屏幕上将会显示出 secret.txt 文件的前 20 个字符。

img

(2) syswrite 方法

syswrite 方法用于向文件中写入内容,用法与 sysread 用法类似,我们可以选用“a”模式,把一段内容追加到文件后面:

#!/usr/bin/ruby

file_1 = File.open("secret.txt","r")

file_1.syswrite("i am syswrite!")

file_1.close

对目录(Dir)的操作

文件都是包含在目录中,Ruby 提供了处理文件和目录的方式,File 类用于处理文件,Dir 类用于处理目录。

1. 浏览目录

puts Dir.pwd 查看当前目录

Dir.cndir("/usr/bin") 改变当前目录为 "/usr/bin"

puts Dir.entries("/usr/bin") 显示当前目录下的文件和目录列表

img

2. 创建和删除目录

很简单,直接举例说明:

Dir.mkdir("dir_name")   # 创建一个目录
Dir.delete("dir_name")  # 删除一个目录