【问题标题】:Does C# have something similar to Python's universal newlinesC# 是否有类似于 Python 的通用换行符的东西
【发布时间】:2019-04-13 11:07:23
【问题描述】:

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

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

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

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

【问题讨论】:

标签: c# newline portability language-features


【解决方案1】:

StreamReader.ReadLine 这样做:

行定义为一系列字符后跟换行符 ("\n")、回车符 ("\r") 或回车符后紧跟换行符 ("\r\n ”)。返回的字符串不包含终止回车或换行。

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

我不知道有什么方法可以从文件中读取多行作为字符串,但是会默默地用标准化的\n 替换所有行结束字符。 StreamReader.ReadToEnd() 不会以这种方式处理它读取的文本。

【讨论】:

  • 谢谢,这对我来说已经足够好了,可以逐行迭代。目前我不需要该功能的“读取块并规范化”部分。
  • 实际上,我意识到我也需要功能的块标准化部分,但感谢文件的全部内容。我只是把它读成行,然后自己用“\n”加入这些行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多