我有 2 个文件文件 A 和文件 B 如何需要复制文件 A 上的第 30 行并将其粘贴到文件 B 中第 30 行的顶部我可以在 C# 中执行此操作吗?
问问题
1332 次
2 回答
6
这是一个非常简单的方法,假设文件 B 小到可以读入内存:
string lineFromA = File.ReadLines("fileA.txt").Skip(29).First();
string[] linesFromB = File.ReadAllLines("fileB.txt");
linesFromB[29] = lineFromA;
File.WriteAllLines("fileC.txt", linesFromB);
这假设您使用的是 .NET 4 及其惰性File.ReadLines
方法。如果不是,最简单的方法是将两个文件完全读入内存,使用File.ReadAllLines
两次:
string[] linesFromA = File.ReadAllLines("fileA.txt");
string[] linesFromB = File.ReadAllLines("fileB.txt");
linesFromB[29] = linesFromA[29];
File.WriteAllLines("fileC.txt", linesFromB);
肯定有更有效的方法,但除非我有任何理由需要更有效的方法,否则我会选择上述方法。
于 2012-07-09T10:55:45.187 回答
0
如果您在写入端使用流写入器,您将获得一个不使用大量内存且也可用于较大文件的例程。
string lineFromA = File.ReadLines("fileA.txt").Skip(29).First();
using (var fileC = File.AppendText("fileC.txt"))
{
int i = 0;
foreach (var lineFromB in File.ReadLines("fileB.txt"))
{
i++;
fileC.WriteLine(i != 30 ? lineFromB : lineFromA);
}
}
于 2012-07-09T11:52:36.393 回答