这是我迄今为止看到的删除文本文件中最后 3 行的代码,但需要确定 string[] lines = File.ReadAllLines(); 我没有必要这样做。
string[] lines = File.ReadAllLines(@"C:\\Users.txt");
StringBuilder sb = new StringBuilder();
int count = lines.Length - 3; // except last 3 lines
for (int s = 0; s < count; s++)
{
sb.AppendLine(lines[s]);
}
代码运行良好,但我不想重新读取文件,因为我在上面提到了流读取器:
using (StreamReader r = new StreamReader(@"C:\\Users.txt"))
据我所知,我是 C# 的新手,在使用 streamreader 之后,如果我想修改这些行,我必须使用这个:
while ((line = r.ReadLine()) != null)
{
#sample codes inside the bracket
line = line.Replace("|", "");
line = line.Replace("MY30", "");
line = line.Replace("E", "");
}
那么,有没有办法删除“while((line = r.ReadLine())!= null)”中文件中的最后3行?
我必须一次删除行、替换行和更多修改,所以我不能一次又一次地打开/读取同一个文本文件来修改行。我希望我问的方式对你们来说是不稳定的>.<
请帮助我,我知道这个问题听起来很简单,但我已经搜索了很多方法来解决它但失败了=(
到目前为止,我的代码是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication11
{
public class Read
{
static void Main(string[] args)
{
string tempFile = Path.GetTempFileName();
using (StreamReader r = new StreamReader(@"C:\\Users\SAP Report.txt"))
{
using (StreamWriter sw = new StreamWrite (@"C:\\Users\output2.txt"))
{
string line;
while ((line = r.ReadLine()) != null)
{
line = line.Replace("|", "");
line = line.Replace("MY30", "");
line = line.Replace("E", "");
line = System.Text.RegularExpressions.Regex.Replace(line, @"\s{2,}", " ");
sw.WriteLine(line);
}
}
}
}
}
}
现在我的下一个任务是删除这些代码之后文件中的最后 3 行,我需要这方面的帮助。
谢谢你。