2012-01-12 33 views

回答

14

當你調用File.open您正在打開一個I/O流到文件中。在內部,流有一個「遊標」,代表你從最後讀取的部分。當您調用File#read而沒有長度參數時,它將從光標(在打開文件時從文件的開頭處開始)讀取,直到流結束,即文件結束。這樣做,光標也移動到文件的末尾。如果再次調用read,那麼遊標仍然在文件的末尾,並且因爲沒有其他內容可讀,所以它不返回任何內容("")。

如果您需要第二次讀取文件,則可以使用File#rewind將光標移回流的開頭。