如何在 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