1

我在 Windows 机器上使用 Ruby 1.9.3。

当我IO.readlines在一个文件上运行时,我得到了一个奇怪而出乎意料的结果。在文件上运行的结果IO.readlines是一个数组,它只以不是文件最后一行的行结束。例如,数组中的最后一个元素是这个字符串:

MLOGIC(RESPONSE_FREQUENCY):  Parameter NUMERATOR_SUBSET has value \x01where

这是数组中的最后一个元素,即使文件实际上还有更多行。

当我IO.readlines使用 Ruby 2.0.0 在 OS X 上运行完全相同的文件时,没有问题;它按预期将整个文件读入一个数组。

对此的任何帮助将不胜感激。

4

1 回答 1

0

IO.readlinesWindows 与 OSX 上(文档1.9.32.0.0 )的主要区别在于默认的行分隔符$/——在 unixoid 系统上,您会发现它是"\n",而在 Windows 上它是"\r\n"

要获得相同的行为,您可以IO.readlines这样调用:

arr = IO.readlines('./testfile', "\n")
于 2014-02-05T21:05:19.267 回答