gpt4 book ai didi

C# 将 {CRLF} 替换为 {LF}

转载 作者:行者123 更新时间:2023-12-05 08:26:46 29 4
gpt4 key购买 nike

我有一个别人发来的文本文件。如果我在 NotePad++ 中打开并查看所有符号,我可以看到 {LF} 和 {CRLF} 都用作行分隔符。

例子:

第 1 行:ABC {CRLF}

第 2 行:XYZ {LF}

问题如果我想用{LF}替换{CRLF}并写入一个新文件,为什么输出文本文件无法显示单独的行并且分隔符号消失。 Write 只是写入该行并追加另一行而不开始新行,但是该行仍然有 {LF} ,不是吗?那是因为我在Windows系统中工作吗?但是如何将包含 {LF}{CR}{LF} 的原始文件视为两个单独的行?

代码很简单:

using (StreamReader sr = new StreamReader(@"\\...\TEST.txt"))
{
using (StreamWriter sw = new StreamWriter(@"\\...\TEST2.txt"))
{
string line = "";

while ((line = sr.ReadLine()) != null)
{
sw.Write(line.Replace("\r\n", "\n"));
}
}
}

最佳答案

当您使用 ReadLine() 时,您正在修剪 EOL 字符(CR 和 LF)。相反,您应该执行以下方法之一:

string file1 = @"\\...\TEST.txt";
string file2 = @"\\...\TEST2.txt";

using (StreamReader sr = new StreamReader(file1))
{
using (StreamWriter sw = new StreamWriter(file2))
{
string text = sr.ReadToEnd();
sw.Write(text.Replace("\r\n", "\n"));
}
}

或者

File.WriteAllText(file2,File.ReadAllText(file1).Replace("\r\n", "\n"));

但前提是你的文件不是太大。否则,吉姆解决方案是可行的方法。

关于C# 将 {CRLF} 替换为 {LF},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51107536/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com