Ruby 文件的输入与输出


Ruby 文件的输入与输出

Ruby 是一门松散类型、动态性的脚本编程语言,被广泛应用于 Web 开发以及各种自动化脚本编写中。而在 Ruby 的开发过程中,文件 I/O(Input/Output)是一个非常重要的部分,主要是用来读取、写入、创建和修改文件。在本文中,我们将探讨 Ruby 文件的输入与输出。

文件操作

在 Ruby 中,我们需要使用特殊的文件类来进行文件操作。这个类称作“File”,是 Ruby 内置的文件操作类,有几个常用的方法:

方法 描述
new 创建文件对象。
open 打开文件。
close 关闭文件。
read 读取文件内容。
write 写入文件内容。
delete 删除文件。
exists 检查文件是否存在。
rename 重命名文件。
chmod 修改文件读、写、执行权限。
chown 修改所有者或用户组。
size 获取文件大小。
directory? 检查是否是一个目录。
file? 检查是否是一个文件。
symlink? 检查是否是一个符号链接。
owned? 检查文件是否属于当前用户。
executable? 检查文件是否可执行。

文件的读取

在 Ruby 中,我们可以使用四种常用的方法来读取文件:read、readline、readlines 和 each_line。

read 方法

read 方法用于读取文件,读取指定的字符数(或所有字符),并返回一个字符串。

# 示例

file = File.new("example.txt", "r")
puts "1. " + file.read(15)    # 读取前 15 个字符
puts "2. " + file.read(15)    # 继续读取接下来的 15 个字符
puts "3. " + file.read       # 读取余下的所有字符
file.close

readline 方法

readline 方法用于读取文件的一行,并返回一个字符串。

# 示例

file = File.new("example.txt", "r")
puts "1. " + file.readline      # 输出第一行
puts "2. " + file.readline      # 输出第二行
file.close

readlines 方法

readlines 方法用于读取整个文件,并返回每一行的内容所构成的数组。

# 示例

file = File.new("example.txt", "r")
puts file.readlines.inspect     # 输出数组内容
file.close

each_line 方法

each_line 方法用于对每一行进行循环迭代。

# 示例

File.open("example.txt", "r") do |file|
  file.each_line do |line|
    puts "#{file.lineno}: #{line}"
  end
end

文件的写入

在 Ruby 中,我们可以使用两种常用的方法来写入文件:write 和 puts。

write 方法

write 方法用于写入数据,并返回写入的字符数。

# 示例

file = File.new("example.txt", "w")
file.write("Hello, World!")
file.close

puts 方法

puts 方法用于向文件写入数据,并自动在行末添加行终止符。

# 示例

File.open("example.txt", "w") do |file|
  file.puts "Hello, World!"
end

# 向文件追加数据

File.open("example.txt", "a") do |file|
  file.puts "Hello, Ruby!"
end

文件的创建和删除

在 Ruby 中,我们可以使用 File 类的 new 方法来创建新的文件。

# 示例

file = File.new("example.txt", "w")
file.close

文件创建后,我们可以使用 delete 方法来删除指定的文件。

# 示例

File.delete("example.txt")

读取二进制文件

在 Ruby 中,我们也可以通过以下代码来读取二进制文件:

File.open("example.bin", "rb") do |file|
  bytes = []
  while byte = file.read(1)
    bytes << byte.bytes.first
  end
end

Conclusion

本文主要介绍了 Ruby 文件的输入与输出,包括读取文件、写入文件、创建和删除文件等几方面的知识点,并且介绍了 Ruby 文件读取和写入的常用方法。熟练掌握 Ruby 文件操作和读写技巧,有助于提高 Ruby 的文件操作能力和编程效率。