Ruby文件介绍及实例

204 阅读5分钟

Ruby File

红宝石文件简介

Ruby文件提供了一个处理文件系统的漂亮方法;它有许多I/O方法,在内核模块中使用。在Ruby中,有许多处理文件系统的重要方法,所有这些方法都来自于I/O类,有一些重要的文件操作,如read(读取文件),write(在文件上写),put(读取变量并打印分配给这个变量的值),gets,princ,print(print与put类似,唯一的区别是它不会从新的行开始,它的光标将在同一行)和readline,这些操作在文件系统中非常常见。

各种文件操作

在Ruby中对文件系统有各种操作,如果你不知道在Ruby文件系统中可以执行哪些操作,你仍然可以概括出你在日常生活中对文件系统进行的重要操作;例如,你打开文件,你更新或在文件上写东西,以及更多你每天进行的操作,都会在Ruby文件系统中涵盖。

Ruby文件的例子

让我们通过一些例子开始了解这些操作。

例子 #1 - 为只读打开文件

为只读打开文件,这里我们是为读取目的打开文件,并从文件中读取内容。我们可以通过以下步骤解释下面的例子。

  • 首先,我们创建了一个名为test.txt的文件,并向该文件添加了一些内容。
  • 我们使用了带有两个参数的new,在第一个参数中,我们传递了我们要读取的文件的名称和路径,第二个参数是我们打开文件的模式(在这个例子中,我们是以read(r)模式打开文件)。
  • 接下来的代码是一个if语句,我们要检查文件是否为空,以避免空内容的无用代码流。
  • 最后,在sysread方法的帮助下,以20作为字的长度。
  • 在输出中,它正在打印文件中的20个字符。

注意:请注意我的文本文件test.txt与Ruby代码文件在同一路径上;在我的例子中,两者都在同一目录下,因此我不需要提及文件的路径,但如果你的文件在Ruby代码的其他目录下,那么请提及路径而不是简单地写文件名。

请按照下面的代码和屏幕上的内容进行操作。

代码

simpleFile = File.new("test.txt", "r")
if simpleFile
data = simpleFile.sysread(20)
puts data
else
puts "Not able to access the file"
end

输出

Ruby File output 1

例子 #2 - 以写模式打开文件

为写模式打开文件,这里我们是为写目的而打开文件,并在文件中写入内容。因此,我们可以按以下步骤解释下面的例子。

  • 首先,我们创建了一个名称为test.txt的文件,并向该文件添加了一些内容。
  • 我们使用了带有两个参数的new,在第一个参数中,我们传递了我们要读取的文件的名称和路径,第二个参数是我们打开文件的模式(在这个例子中,我们是以write(+r)模式打开文件)。
  • 接下来的代码是一个if语句,我们要检查文件是否为空,以避免空内容的无用代码流。
  • 最后,在方法syswrite的帮助下,它将写入内容或简单地删除现有的内容并添加传入函数的内容。这个函数将返回文件上的字母的总长度。你可以看到在这个例子中它返回48。
  • 我们可以看到执行代码前和执行代码块后文件test.txt的内容。

代码

simpleFile = File.new("test.txt", "r+")
if simpleFile
data = simpleFile.syswrite("Yes, we should avoid the rush in current situations")
puts data
else
puts "Not able to access the file"
end

输出

Ruby File output 2

例子 #3 - 重命名一个文件

这是一个非常简单的例子,我们将一个文件从test.txt重命名为final.txt。一旦我们执行了下面的代码,输出将把test.txt改为final.txt。我可以在下面的步骤中解释输出屏幕。

  • 我创建了一个文件test.txt和file.rb(包含ruby代码)
  • 我们用ls命令检查了文件名。
  • 最后,我们运行ruby file.rb命令,执行代码并改变文件的名称。

请按照下面的代码以及输出屏幕进行操作。

代码

File.rename( "test.txt", "final.txt" )

输出

output 3

例子 #4 - 删除一个文件

这是一个非常简单的例子,我们要删除一个名为final.txt的文件。一旦我们执行下面的代码,输出将删除final.txt文件。我可以在下面的步骤中解释输出屏幕。

  • 我创建了一个文件test.txt和file.rb(包含ruby代码)
  • 我们用ls命令检查了final.txt文件。
  • 最后,我们运行ruby file.rb命令,执行代码,它将删除该文件。
  • 我们再次用ls命令检查了文件夹,我们发现文件夹中不包含final.txt。

请按照下面的代码和输出画面进行操作。

代码

File.delete("final.txt")

输出

output 4

例子 #5 - 基于IO的操作

在这个例子中,我们只是对test.txt的内容逐行进行了循环操作。因此,我们可以用以下步骤解释下面的例子。

  • 文件 test.txt 包含两行内容。
  • 在运行 ruby file.rb 命令时,将逐行打印内容。

请跟随下面的代码和输出屏幕的例子。

代码

IO.foreach("test.txt"){|content| puts content}

输出

output 5

结论

通过这些教程,我们学习了文件系统及其基本概念;我们学习了一些最重要和最常用的操作,如读、写、删除和重命名文件;我们还学习了Ruby文件系统中的I/O操作。