【发布时间】:2011-12-12 02:36:29
【问题描述】:
我正在尝试使用我的 C# 程序编写一个带有 Unix 样式换行符的文本文件。
由于某种原因,以下代码不起作用:
TextWriter fileTW = ...
fileTW.NewLine = "\n";
fileTW.WriteLine("Hello World!");
这也不行:
TextWriter fileTW = ...
fileTW.Write("Hello World! + \n");
在这两种情况下,'\n' 都被替换为 '\r\n',这是我不想要的!我一直在用十六进制编辑器验证这一点,它显示每一行以 0x0D0A 结尾。
有什么想法吗?
谢谢!
编辑:
对不起大家,虚惊一场!
请允许我解释...
我的 TextWriter 正在写入 MemoryStream,然后使用 SharpZLib 将其添加到 tar 存档中。事实证明,通过使用 WinZIP 提取文本文件,它会将 \n 的每个实例替换为 \r\n。如果我将相同的 tar 存档复制到我的 Ubuntu 机器并在那里解压缩,则只有 \n 存在。奇怪!
对不起,如果我浪费了任何人的时间!谢谢!
【问题讨论】:
-
您使用 TextWriter 的任何原因?例如,您可以使用 FileSram...
-
我正在使用 TextWriter 先写入 MemoryStream。
-
当我尝试将 MemoryStream 写入文件而不是 TextWriter 时,似乎稍后会添加 /r。让我做一点挖掘,我会回复给大家!感谢大家的宝贵时间!
标签: c# newline textwriter