-1

我有两个文件如下:第一个 file1.txt -

 4
 suzan w kieth
 Terry s Greenberg
 Ron   q xxx
 Tu    L ip

第二个文件 file2.txt -

2
Lily s great
Rowina q Joseph

两个文件的第一个记录是该文件中的记录数,并且两个文件具有完全相同的格式。

我想要第三个文件,其中包含以下记录 -

6
suzan w kieth
Terry s Greenberg
Ron   q xxx
Tu    L ip
Lily s great
Rowina q Joseph

有什么建议可以合并这些文件吗?或最快的方法?

谢谢。

4

2 回答 2

1

将字符串转换为 int

TextReader.ReadLine

TextReader.WriteLine

using System;
using System.IO;

namespace csharp_station.howto
{
    class TextFileReader
    {
        static void Main(string[] args)
        {
            TextReader tr1 = new StreamReader("file1.txt");
            TextReader tr2 = new StreamReader("file2.txt");
            TextWriter tw = new StreamWriter("result.txt");

            int count1 = Convert.ToInt32(tr1.ReadLine());
            int count2 = Convert.ToInt32(tr2.ReadLine());
            tw.WriteLine(count1 + count2);

            for(int i = 0; i < count1; i++)
            {
                tw.WriteLine(tr1.ReadLine());
            }

            for(int i = 0; i < count2; i++)
            {
                tw.WriteLine(tr2.ReadLine());
            }

            tr1.Close();
            tr2.Close();
            tw.Close();
        }
    }
}
于 2012-06-07T20:33:22.617 回答
0

最简单的方法是使用Enumerable.Concat

var file1Lines = System.IO.File.ReadAllLines(file1Path);
var file2Lines = System.IO.File.ReadAllLines(file2Path);
int totalCount = int.Parse(file1Lines.First()) + int.Parse(file2Lines.First());
var file3FirstLine = new[] { totalCount.ToString() };
var file3Lines = file3FirstLine.Concat(file1Lines.Skip(1))
                               .Concat(file2Lines.Skip(1));
System.IO.File.WriteAllLines(file3Path, file3Lines);
于 2012-06-07T20:44:13.580 回答