我使用c#读取一些txt文档,并写入/删除其中的一些行--我必须读取文本文档,删除其中的一些行,然后再将其保存在相同的路径中。直到我意识到它不会读空行,或者在新行中只有一个空格时,它才能正常工作。
以下是我的文本文件结构:
-Name
-LastName
-Age
-Phone
-Address
-Address2(optional) -// this line will be deleted
-Address3(optional) -// this line will be deleted
****here comes the empty line****这是我的密码:
List<string> myLines = File.ReadAllLines(path).ToList();
if (myLines.Count > 5)
{
for(int i = 7; i >= 5; i--)
{
myLines.RemoveAt(i);
}
File.WriteAllLines(path, myLines.ToArray());
}所以我不知道为什么当我运行File.ReadAllLines时会给我7行(忽略空白的一行),当然,在我删除文件中的某些内容之后,空行仍然存在。
注意:我正在处理超过100 k的文件,不管是哪种方式,我都会手动删除特定的行。
你能帮我整理一下并删除空白行吗?谢谢。
发布于 2022-02-18 12:45:02
下面是一些代码:
var f = @"-Name
-LastName
-Age
-Phone
-Address
-Address2(optional) -// this line will be deleted
-Address3(optional) -// this line will be deleted
-Name2";
File.WriteAllText(@"C:\temp\a.txt", f);
var f2 = File.ReadAllLines(@"C:\temp\a.txt").ToList();
f2.RemoveAt(7);
f2.RemoveAt(6);
f2.RemoveAt(5);
File.WriteAllLines(@"C:\temp\b.txt", f2);在c:\temp中打开两个结果文件a.txt和b.txt (确保您有一个c:\temp) -a有空行,b没有临时空行或地址2/3

..but确实注意到b在末尾有一个空行,因为File.WriteAllLines将用一个CRLF结束最后一行(在我的例子中是Name2)。
如果这就是你正在谈论的/你不想要的,那么不妨考虑一下其他的东西,也许:
File.WriteAllText(@"C:\temp\b.txt", string.Join(Environment.NewLine, f2));https://stackoverflow.com/questions/71173390
复制相似问题