2012-01-12 29 views

回答

14

当你调用File.open您正在打开一个I/O流到文件中。在内部,流有一个“游标”,代表你从最后读取的部分。当您调用File#read而没有长度参数时,它将从光标(在打开文件时从文件的开头处开始)读取,直到流结束,即文件结束。这样做,光标也移动到文件的末尾。如果再次调用read,那么游标仍然在文件的末尾,并且因为没有其他内容可读,所以它不返回任何内容("")。

如果您需要第二次读取文件,则可以使用File#rewind将光标移回流的开头。