我想将2个.txt文件合并到一个文本文件中。我们说我有2个文本文件。第一个只包含100行"再试一次"。就像图片中的这个:
第二个文本文件包含一堆随机代码:
我想合并这两个文本文件,如下图所示:
我一周,我还没想出来。
答案 0 :(得分:0)
编辑:我通过吉姆编辑代码,他警告我,现在它正在工作。 首先,您需要读取这两个文件并将所有行存储到字符串数组。然后将它们像波纹管一样循环。您需要从第二个文件中检查和写入的每五个项目。 PS:我没有尝试过代码,但是它会在没有错误的情况下运行。
string[] first = System.IO.File.ReadAllLines("path of first txt file");
string[] second = System.IO.File.ReadAllLines("path of second txt file");
var sb = new StringBuilder();
var k = 0;
var m = 0;
for (int i = m; i < second.Length; i++)
{
m = i + 1;
for (int j = k; j < first.Length; j++)
{
k = j + 1;
if (j != 0 && j % 4 == 0)
{
sb.Append(second[i] + "\n");
break;
}
else
{
sb.Append(first[j] + "\n");
continue;
}
}
}
// create new txt file
var file = new System.IO.StreamWriter("path of third txt file");
file.WriteLine(sb.ToString());
答案 1 :(得分:0)
只需打开这两个文件,然后在循环中从第一行读取四行,从第二行读取一行。在读取时输出每一行。
using (var outputFile = File.CreateText("OutputFile.txt"))
{
using (var input1 = File.OpenText("TryAgain.txt"))
using (var input2 = File.OpenText("File2.txt"))
{
while (!input1.EndOfStream && !input2.EndOfStream))
{
int i;
for (i = 0; i < 4 && !input1.EndOfStream; ++i))
{
var s1 = input1.ReadLine();
outputFile.WriteLine(s1);
}
if (i != 4) break; // end of first file
// now read one line from the other file, and output it
var s2 = input2.ReadLine();
outputFile.WriteLine(s2);
}
}
}
这样做的好处是不必同时将两个文件都读入内存,也不必在内存中构建整个输出。每行都在写完后立即输出。