【发布时间】:2011-12-04 02:31:15
【问题描述】:
尝试使用 C# 中的 StreamReader 或类似工具来读取和写入非常长的行而不使用换行符。
据我了解,换行符仍然只是一个称为文件的长字节数组中的 2 个字节(CR+LF)。至少这就是我在 C/C++ 中习惯的方式......
这对于 C# 和 .net 是否相同,或者对于没有换行符的行是否有一些最大长度?
【问题讨论】:
-
如果你希望它是跨平台的,你应该使用Environment.NewLine,因为Unix只使用LF。
-
@jb。 :C# 不打算跨平台......仅仅因为存在单声道并不意味着每个人都使用,应该编写跨平台代码,甚至意识到这一点。如果他在他的问题中提到跨平台,那么这将是一个很好的评论。
-
C# 和 .NET / 绝对 / 设计为跨平台的。是否应该编写跨平台代码取决于他们。
-
@Dani 我提到它是因为他说
linebreak is still just 2 bytes (CR+LF)。如果您使用的是 unix,那就不是这样了。我只是不想让他写一个大程序然后让它以奇怪的方式失败,因为他没有预料到只有 LF 的结局。 -
@MikeChristensen:你为什么这么认为?微软为什么要设计一种跨平台语言?
标签: c# streamreader line-breaks textreader