我应该在Ruby中File.read和File.open之后销毁File对象吗?
假设有两种ruby文件操作 首先,我应该在Ruby中File.read和File.open之后销毁File对象吗?,ruby,file,Ruby,File,假设有两种ruby文件操作 首先, file = File.open("xxx") file.close 第二, file = File.read("xxx") file.close 众所周知,我们应该在使用完文件后关闭它。但是,在第二段代码中,Ruby解释器抛出一条错误消息,如下所示: in `<main>': undefined method `close' for #<String:0x000000022a3a08> (NoMethodError) “.”中的
file = File.open("xxx")
file.close
第二,
file = File.read("xxx")
file.close
众所周知,我们应该在使用完文件后关闭它。但是,在第二段代码中,Ruby解释器抛出一条错误消息,如下所示:
in `<main>': undefined method `close' for #<String:0x000000022a3a08> (NoMethodError)
“.”中的:未定义的#(NoMethodError)方法“close”
我不需要使用
文件。在第二种情况下是否关闭
?我想知道为什么?这是因为File.read
方法返回包含文件内容的字符串,而不是File
对象。是的,如果使用File.read
方法,则不需要显式地使用close
,因为ruby会自动为您执行此操作 回答正确,我只是想让你再次指出文档中的句子
在第二种情况下,我不需要使用file.close
你不需要这样做
仔细阅读文件:
打开文件,可以选择查找给定的偏移量,然后返回长度字节(默认为文件的其余部分)read
确保文件在返回之前关闭。