Ruby 中 File 类的常用方法有哪些?

· 约 3 分钟读完 · 第 101 / 199 章

推荐答案

在 Ruby 中,File 类提供了许多用于文件操作的常用方法。以下是一些常用的方法:

  1. File.open(filename, mode): 打开文件并返回一个 File 对象。mode 参数指定文件的打开模式(如 "r" 表示只读,"w" 表示写入等)。
  2. File.read(filename): 读取文件内容并返回一个字符串。
  3. File.write(filename, data): 将数据写入文件。如果文件不存在,则创建文件;如果文件已存在,则覆盖文件内容。
  4. File.exist?(filename): 检查文件是否存在,返回布尔值。
  5. File.delete(filename): 删除指定的文件。
  6. File.size(filename): 返回文件的大小(以字节为单位)。
  7. File.rename(oldname, newname): 重命名文件。
  8. File.directory?(filename): 检查路径是否为目录,返回布尔值。
  9. File.file?(filename): 检查路径是否为文件,返回布尔值。
  10. File.mtime(filename): 返回文件的最后修改时间。

本题详细解读

File.open(filename, mode)

File.open 是 Ruby 中用于打开文件的主要方法。它接受两个参数:文件名和打开模式。常见的模式包括:

  • "r": 只读模式(默认)。
  • "w": 写入模式,如果文件存在则覆盖,不存在则创建。
  • "a": 追加模式,如果文件存在则在文件末尾追加内容,不存在则创建。
  • "r+": 读写模式,文件指针在文件开头。
  • "w+": 读写模式,如果文件存在则覆盖,不存在则创建。
  • "a+": 读写模式,文件指针在文件末尾。

File.read(filename)

File.read 方法用于读取整个文件内容并返回一个字符串。它适用于读取较小的文件,因为大文件可能会导致内存问题。

File.write(filename, data)

File.write 方法用于将数据写入文件。如果文件不存在,它会创建文件;如果文件已存在,它会覆盖文件内容。data 参数可以是字符串或二进制数据。

File.exist?(filename)

File.exist? 方法用于检查文件是否存在。它返回一个布尔值,true 表示文件存在,false 表示文件不存在。

File.delete(filename)

File.delete 方法用于删除指定的文件。如果文件不存在,会抛出 Errno::ENOENT 异常。

File.size(filename)

File.size 方法返回文件的大小,以字节为单位。如果文件不存在,会抛出 Errno::ENOENT 异常。

File.rename(oldname, newname)

File.rename 方法用于重命名文件。它将 oldname 文件重命名为 newname。如果 newname 文件已存在,它会被覆盖。

File.directory?(filename)

File.directory? 方法用于检查给定的路径是否为目录。它返回一个布尔值,true 表示路径是目录,false 表示不是。

File.file?(filename)

File.file? 方法用于检查给定的路径是否为文件。它返回一个布尔值,true 表示路径是文件,false 表示不是。

File.mtime(filename)

File.mtime 方法返回文件的最后修改时间。它返回一个 Time 对象,表示文件的最后修改时间。