C#是否具有类似于Python通用换行符的内容

时间:2019-04-13 11:07:23

标签: c# newline portability language-features

  

Python的文件对象现在可以支持行尾约定,而不是运行Python的平台所遵循的约定。以“ U”或“ rU”模式打开文件将以通用换行模式打开文件以进行读取。在所有文件方法(如read()和readline())返回的字符串中,所有这三行结尾约定都将转换为“ \ n”。

     

https://docs.python.org/2.3/whatsnew/node7.html

在Python 3中,通用换行符是打开文本文件的默认模式。这意味着,在打开文本文件时,我根本不必关心行尾的约定。

我们在C#中也有这样的便利功能吗?

1 个答案:

答案 0 :(得分:3)

StreamReader.ReadLine执行此操作:

  

一行定义为一个字符序列,后跟换行符(“ \ n”),回车符(“ \ r”)或回车符后紧跟换行符(“ \ r \ n ”)。返回的字符串不包含回车符或换行符。

从文件中读取行的便捷方法,例如File.ReadLinesFile.ReadAllLines,请在内部使用StreamReader

我不知道有任何方法可以将文件中的多行读取为字符串,但是会用规范化的\n静默替换所有行尾字符。 StreamReader.ReadToEnd()不会以这种方式处理其读取的文本。