3
为什么Ruby的File#read
和File#readlines
只能使用一次?为什么Ruby文件#读取或文件#readlines只能使用一次?
例如:
txt = File.open "test.txt"
puts txt.read # returns the content
puts txt.read # returns ""
为什么Ruby的File#read
和File#readlines
只能使用一次?为什么Ruby文件#读取或文件#readlines只能使用一次?
例如:
txt = File.open "test.txt"
puts txt.read # returns the content
puts txt.read # returns ""
当你调用File.open
您正在打开一个I/O流到文件中。在内部,流有一个“游标”,代表你从最后读取的部分。当您调用File#read
而没有长度参数时,它将从光标(在打开文件时从文件的开头处开始)读取,直到流结束,即文件结束。这样做,光标也移动到文件的末尾。如果再次调用read
,那么游标仍然在文件的末尾,并且因为没有其他内容可读,所以它不返回任何内容(""
)。
如果您需要第二次读取文件,则可以使用File#rewind
将光标移回流的开头。