我想在文本文件的某些位置插入数据,而不实际覆盖现有数据。我有两个文本文件。 “one.txt”文件有1000行,“two.txt”文件有10000行。我想阅读“one.txt”文件内容并插入前两行“two.txt”文件内容(将“one.txt”的内容附加到“two.txt”的开头)。
标准:
答案 0 :(得分:4)
只需为第一个文件打开一个流读取器,为第二个文件打开一个流编写器(在追加模式下)。当您从第一个文件中读取前1000行时,将它们插入第二个文件。
这样的事情:
StreamReader sr = new StreamReader("one.txt");
StreamWriter sw = new StreamWriter("two.txt", true); //true for append
index i = 0;
while (i < 1000) {
sw.WriteLine(sr.ReadLine());
i++;
}
您可能想要检查StreamReader上的文件结尾,但这会给您一般的想法......
基于OP中的新信息:
您可以使用相同类型的方法,但只需创建一个全新的文件,从第一个文件中读取数据,然后从第二个文件中读取数据。一旦它进入新文件,替换原来的“two.txt”。
答案 1 :(得分:3)
如果你只需要这样做一次,这里有一些代码可以做你想要的。我没有编译,但我相信没有问题。
string[] linesOne = File.ReadAllLines(pathToFile1);
string[] linesTwo = File.ReadAllLines(pathToFile2);
List<string> result = new List<string>();
for(int i=0;i<1000;i++)
{
result.Add(linesOne[i]);
}
result.AddRange(linesTwo);
File.WriteAllLines(pathToFile2, result);
希望这能让你开始。
鲍勃
答案 2 :(得分:3)
如果您不限于c#,则可以从Windows命令行执行以下操作:
copy one.txt + two.txt three.txt
这将创建您想要的文件,但它将被称为three.txt。如果你必须在two.txt中使用它,你可以先将two.txt重命名为其他内容,然后将该副本附加为two.txt作为第三个parm。