如何在 Ruby 中读取和写入文件


Ruby 为我们提供了不同的方法来处理文件。简单来说,**文件处理**涉及不同的过程,例如创建新文件、读取文件中存在的内容、向文件写入某些内容、将内容追加到文件、删除文件等等。

在 Ruby 中进行**文件处理**可以使用不同的模式。它们是:

  • **r** = 只读模式

  • **r+** = 读写模式

  • **w** = 仅写入模式

  • **w+** = 读写模式

以及更多。这四种提到的模式在 Ruby 中进行**文件处理**时是最常用的。在本文中,我们将借助示例逐一探讨所有主要的文件处理案例。

在 Ruby 中创建文件

让我们从最常见和最有用的一个开始,**如何在 Ruby 中创建文件**。请考虑以下代码。

# Creating a file
fileObj = File.new("tutorials.txt", "w+");

# Writing to the file
fileObj.syswrite("This file contains knowledge!");

# Closing a file
fileObj.close();

当我们想要在 Ruby 中创建一个新文件时,我们使用**File**模块的**new()**方法,它接受两个参数。第一个参数是文件的**名称**,第二个参数是我们想要打开文件的**模式**。

如果我们在任何 Ruby IDE 上编写以下代码,则会在同一目录中创建一个新文件。我们可以使用**cat**命令打开文件来确认这一点。

**命令** -

cat tutorials.txt

它将产生以下输出。

This file contains knowledge!

在 Ruby 中打开文件

现在我们将看到如何在 Ruby 中打开文件。我们可以使用多种方法在 Ruby 中打开文件。有两种方法被广泛使用 - **sysread(n)**和**read()**方法。

open 方法用于打开文件,而**sysread(n)**用于从文件中读取前“n”个字符,**read()**方法用于读取整个文件内容。

示例

请考虑以下代码。

fileObject = File.open("tutorials.txt","r");
puts(fileObject.sysread(10));
fileObject.close();

在上面的代码中,我们正在读取名为“**tutorials.txt**”的文件的前 10 个字符。

它将产生以下输出。

This file

以下是另一个在 Ruby 中打开文件的示例。

fileObject = File.open("tutorials.txt","r");
print(fileObject.read());
fileObject.close();

它将产生以下输出。

This file contains knowledge!

现在让我们尝试在 Ruby 中重命名文件。

在 Ruby 中重命名文件

要在 Ruby 中重命名文件,我们需要使用**File**模块中提供的**rename**方法。

puts File.rename("tutorials.txt", "sample.txt")

此命令将把文件名从“tutorials.txt”更改为“sample.txt”。并且,它将在控制台上显示以下输出:

0

在 Ruby 中删除文件

最后但并非最不重要的一点,让我们考虑如何在 Ruby 中删除文件。要删除文件,我们只需要调用**File**模块中提供的**delete**方法。

puts File.delete("sample.txt")

如果我们在任何 Ruby IDE 上编写以下代码,则将在控制台上获得以下输出:

1

更新时间: 2022年4月12日

4K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告