在本章中,我们将深入探讨如何使用 Ruby 进行文件操作。这包括读取文件、写入文件、追加内容到文件以及删除文件等基本操作。此外,我们还将讨论一些更高级的文件处理技术,例如文件复制和重命名。
打开和关闭文件
在 Ruby 中,可以使用 File.open
方法来打开一个文件。这个方法接收一个文件名和一个模式作为参数。常用的模式包括 'r'
(只读)、'w'
(写入,如果文件已存在则会被截断)、'a'
(追加)等。
file = File.open("example.txt", "r")
当你完成对文件的操作后,记得调用 close
方法来关闭文件:
file.close
为了确保文件在程序执行完毕后总是被正确关闭,推荐使用 File.open
的块形式。这样可以自动处理文件关闭,即使发生异常也不会忘记关闭文件:
File.open("example.txt", "r") do |file| # 在这里进行文件操作 end
读取文件
逐行读取
使用 readlines
方法可以将文件内容按行读取为数组:
lines = File.readlines("example.txt") puts lines[0] # 输出第一行
或者,你可以使用 each_line
方法来逐行处理文件内容:
File.foreach("example.txt") do |line| puts line end
一次性读取全部内容
如果你需要一次性读取整个文件的内容,可以使用 read
方法:
content = File.read("example.txt") puts content
写入文件
创建或覆盖文件
要创建一个新的文件或覆盖已存在的文件,可以使用 'w'
模式:
File.open("output.txt", "w") do |file| file.write("Hello, world!") end
追加内容
如果希望向现有文件中追加内容而不是覆盖它,应使用 'a'
模式:
File.open("output.txt", "a") do |file| file.puts("This is a new line.") end
删除文件
使用 File.delete
或 File.unlink
方法可以删除指定的文件:
File.delete("example.txt")
文件复制与移动
复制文件
使用 FileUtils.copy_entry
方法可以复制文件:
require 'fileutils' FileUtils.copy_entry("source.txt", "destination.txt")
移动/重命名文件
要移动文件或重命名文件,可以使用 move
或 rename
方法:
File.rename("old_name.txt", "new_name.txt")
获取文件信息
使用 File.stat
方法可以获得关于文件的各种信息,如修改时间、大小等:
stat = File.stat("example.txt") puts stat.size # 文件大小 puts stat.mtime # 最后修改时间
总结
本章详细介绍了如何使用 Ruby 进行基本的文件操作,包括打开和关闭文件、读取和写入文件内容、删除文件以及复制和移动文件等。掌握这些基础技能是进行更复杂文件处理的前提。接下来,我们可以探索更多高级文件处理技巧和库的使用。