我正在对文件进行更改,“源”文件是纯文本文件,但来自 UNIX 系统。
我正在使用 StreamReader
读取“源”文件,然后我进行更改并将更改存储到 StringBuilder
使用 AppendLine()
.
然后我创建一个 StreamWriter
(设置与 Encoding
相同的 StreamReader
)并写入文件。
现在,当我使用 WinMerge 比较这两个文件时,它报告回车符不同。
我应该怎么做才能确保回车符与我正在编辑的文件类型相同?
还需要注意的是,要修改的文件可以来自任何系统,不仅仅是来自UNIX系统,它们同样可以来自Windows系统——所以我想要一个方法使用与原始文件相同类型的回车符插入这些新行
非常感谢所有回复。
:)
最佳答案
首先您需要断言当前文件的换行符是什么。这可能是个问题,因为给定的文件可以混合不同的行结尾。
然后您可以设置StreamWriter
的NewLine
属性:
StreamWriter sw = new StreamWriter("example.txt");
sw.NewLine = "\r";
有关行尾的有趣阅读,请查看 The Great Newline Schism .
关于c# - (C# WinFoms) 写入文件和换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2288200/