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
將光標移回流的開頭。