Ruby文件I/O

17 Mar 2025 | 4 分钟阅读

Ruby I/O 是一种与系统交互的方式。数据以字节/字符的形式发送。IO 类是 Ruby 中所有输入和输出的基础。它可以是双工的,因此可以使用多个本机操作系统流。

IO 有一个子类,即 File 类,它允许在 Ruby 中读写文件。这两个类是紧密相关的。IO 对象表示与键盘和屏幕的可读/可写交互。


I/O 端口中的常见模式

  • "r": 只读模式是默认模式,从文件开头开始。
  • "r+": 读写模式,从文件开头开始。
  • "w": 只写模式,创建新文件或截断现有文件以进行写入。
  • "w+": 读写模式,创建新文件或截断现有文件以进行读写。
  • "a": 只写模式,如果文件存在,它将追加文件,否则将创建一个新文件以供写入。
  • "a+": 读写模式,如果文件存在,它将追加文件,否则将创建一个新文件以供读写。

IO 控制台

IO 控制台提供了不同的方法与控制台交互。 IO 类提供了以下基本方法

  • IO::console
  • IO#raw#raw!
  • IO#cooked
  • IO#cooked!
  • IO#getch
  • IO#echo=
  • IO#echo?
  • IO#noecho
  • IO#winsize
  • IO#winsize=
  • IO#iflush
  • IO#ioflush
  • IO#oflush

Ruby 打开文件

可以使用不同的方法创建 Ruby 文件,用于读取、写入或两者兼而有之。

Ruby 中有两种打开文件的方法

  • File.new 方法: 使用此方法,可以创建一个新文件,用于读取、写入或两者兼而有之。
  • File.open 方法: 使用此方法,创建一个新的文件对象。该文件对象被分配给一个文件。

这两种方法的区别在于 File.open 方法可以与一个块关联,而 File.new 方法则不能。

语法

或者,

创建文件的示例

让我们使用 File.open 方法在 Ruby 中创建一个文件,以从文件中读取或写入数据。

步骤 1) 在文件 hello.rb 中,编写代码以创建新文件,如下所示。

步骤 2) 在控制台中键入以下两个命令以查看创建的文件。

Ruby file io 1

新文件已创建,内容显示在终端中,如上所示。


Ruby 读取文件

有三种不同的方法可以读取文件。

要返回单行,请使用以下语法。

语法

要在当前位置之后返回整个文件,请使用以下语法。

语法

要将文件作为行数组返回,请使用以下语法。

语法


读取文件的示例

让我们使用 File.open 方法在 Ruby 中创建一个文件,以从文件中读取或写入数据。

步骤 1) 在文件 hello.rb 中,编写代码以读取一个已存在的文件,如下所示。

步骤 2) 在控制台中键入以下命令以读取文件。

Ruby file io 2

关于文件的内容显示在控制台中。

sysread 方法

sysread 方法也用于读取文件的内容。借助此方法,您可以使用任何模式打开文件。

示例

在文件 hello.rb 中,编写代码以读取一个已存在的文件,如下所示。

输出

Ruby file io 3

参数 40 将从文件中打印 40 个字符。


Ruby 写入文件

借助 syswrite 方法,您可以将内容写入文件。为此方法,需要以写入模式打开文件。

新内容将覆盖现有文件中的旧内容。

示例

输出

Ruby file io 4

Ruby 重命名和删除文件

Ruby 文件使用 rename 方法重命名,使用 delete 方法删除。

重命名 一个文件,请使用以下语法。

语法

示例

输出

Ruby file io 5

在上面的输出中,about.txt 文件不再存在,因为它的名称已更改为 new.txt 文件。

删除 一个文件,请使用以下语法。

语法

示例

输出

Ruby file io 6

在上面的输出中,new.txt 文件不再存在,因为它已被删除。


下一主题Ruby 目录