合并2个文本文件ASP.NET

时间:2014-11-22 16:53:22

标签: c# asp.net asp.net-mvc merge

我想将2个.txt文件合并到一个文本文件中。我们说我有2个文本文件。第一个只包含100行"再试一次"。就像图片中的这个:

enter image description here

第二个文本文件包含一堆随机代码:

enter image description here

我想合并这两个文本文件,如下图所示:

enter image description here

一周,我还没想出来。

2 个答案:

答案 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);
        }
    }
}

这样做的好处是不必同时将两个文件都读入内存,也不必在内存中构建整个输出。每行都在写完后立即输出。