如何在Windows上保留Ruby中的行结尾?

时间:2014-12-05 19:22:43

标签: ruby

我在Windows上运行Ruby 1.9.3。当我运行以下代码片段

text = File.read(path)
File.write(path, text)

当文件具有CR + LF行结尾时,我得到完全相同的文件。当我在具有LF行结尾的文件上运行它时,它会更改为CR + LF行结尾。

如何使用Ruby on Windows读取和写入文件,以便保留行结尾,无论是CR + LF还是LF?

1 个答案:

答案 0 :(得分:5)

Ruby,以及Perl和Python,都知道代码运行的操作系统,并会自动设置行结尾应该是什么。

如果您阅读,然后写一个文本文件,这些设置将会启动,您将看到文件发生变化。

如果您需要保持文件不变,请在open语句中添加b标记,例如:

File.open('path', 'wb') do |fo|
  fo.write(text)
end

有关详细信息,请参阅“IO Open Mode”。