我有两个文件如下: 第一个文件.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
有什么建议我如何合并这些文件? 还是最快的方式?
感谢。
答案 0 :(得分:1)
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();
}
}
}
答案 1 :(得分: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);