c# - (C# WinFoms) 写入文件和换行

标签 c# winforms file-io

我正在对文件进行更改,“源”文件是纯文本文件,但来自 UNIX 系统。

我正在使用 StreamReader读取“源”文件,然后我进行更改并将更改存储到 StringBuilder使用 AppendLine() .

然后我创建一个 StreamWriter (设置与 Encoding 相同的 StreamReader )并写入文件。

现在,当我使用 WinMerge 比较这两个文件时,它报告回车符不同。

我应该怎么做才能确保回车符与我正在编辑的文件类型相同?

还需要注意的是,要修改的文件可以来自任何系统,不仅仅是来自UNIX系统,它们同样可以来自Windows系统——所以我想要一个方法使用与原始文件相同类型的回车符插入这些新行

非常感谢所有回复。

:)

最佳答案

首先您需要断言当前文件的换行符是什么。这可能是个问题,因为给定的文件可以混合不同的行结尾。

然后您可以设置StreamWriterNewLine 属性:

StreamWriter sw = new StreamWriter("example.txt");

sw.NewLine = "\r";

有关行尾的有趣阅读,请查看 The Great Newline Schism .

关于c# - (C# WinFoms) 写入文件和换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2288200/

相关文章:

c# - 使用重叠面板创建选项菜单

c# - 语句 if combobox selectedindex == 1 || 2 在 c# 中给出语法错误

python - 在 python 中编写巨大的字符串

c# - libcurl.dll 与curl 和 c# .NET 的问题

c# - ListBox 按项目高度自动调整大小

c# - System.Windows.Forms.DataVisualization 命名空间在一个类中很好,但在另一个类中却不行

windows - 在 Windows 上模拟文件错误(例如 ERROR_ACCESS_DENIED)

file-io - 使用jmeter将提取的数据写入文件

c# - C# 和 VB.Net 之间的表达式树差异

c# - 如何相互合并 DLL