使用File.new在Ruby中“打开”文件意味着什么?

What does it mean to “open” a file in Ruby by using File.new?

给出以下代码:

1
2
3
file = File.new('file1.txt', 'w')
# write data to the file
file.close

当您决定使用file.new方法调用在Ruby中打开文件时,这意味着什么?我理解file=file.new,如果没有创建,则创建file1.txt,并在一开始就进行写入,但从操作系统的角度来看,什么都没有发生。它只需创建,稍后可以通过文本编辑器或Ruby提示访问。没有通过文本编辑器或其他方式打开的文件。

随后,它必须关闭,所以我不理解如何关闭文件,当没有真正从操作系统的角度打开时。

有人能解释一下文件是如何"打开"的,然后又是如何"关闭"的吗?


File.new方法执行对IO::new的调用(此处为文档)。

在本例中,"打开"的是一个输入/输出流,Ruby使用文件描述符跟踪它。这些文件描述符保存起来可能很昂贵,这就是为什么它的良好做法是在任何FileIO的实例上调用close方法。