【发布时间】:2013-02-04 10:48:17
【问题描述】:
我正在尝试将 4 组 15 个 txt 文件写入 4 个大 txt 文件,以便更容易导入到另一个应用程序中。
这是我的代码:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AggregateMultipleFiles
{
class AggMultiFilestoOneFile
{/*This program can reduce multiple input files and grouping results into one file for easier app loading.*/
static void Main(string[] args)
{
TextWriter writer = new StreamWriter("G:/user/data/yr2009/fy09_filtered.txt");
int linelen =495;
char[] buf = new char[linelen];
int line_num = 1;
for (int i = 1; i <= 15; i++)
{
TextReader reader = File.OpenText("G:/user/data/yr2009/fy09_filtered"+i+".txt");
while (true)
{
int nin = reader.Read(buf, 0, buf.Length);
if (nin == 0 )
{
Console.WriteLine("File ended");
break;
}
writer.Write(new String(buf));
line_num++;
}
reader.Close();
}
Console.WriteLine("done");
Console.WriteLine(DateTime.Now);
Console.ReadLine();
writer.Close();
}
}
}
我的问题出在调用文件末尾的某个地方。它没有完成文件的最后一行的写入,然后在前一个文件的最后一行的中间开始写入下一个文件的第一行。
这会丢弃它导入的应用程序中的所有列和数据。
有人建议我可能需要在 15 个文件的每一行的末尾用回车符和回车符填充,\r\n。
- 为什么我的东西不起作用?
- 填充可以代替吗?我该怎么写?
谢谢!
【问题讨论】:
-
您知道您可以将文本文件与命令提示符“复制”命令一起附加,对吧?
-
不,但我当然愿意尝试!每个文件包含大约 100 万行信息,我害怕丢失任何信息。那会安全吗?
-
自 DOS 时代(80 年代)就已经存在。我很确定他们已经解决了大部分主要故障。
-
它并没有像我预期的那样附加到 fy09_filtered1.txt 中。我做了前 4 个测试:COPY G:/user/data/yr2009/fy09_filtered1.txt+fy09_filtered2.txt+fy09_filtered3.txt+fy09_filtered4.txt
标签: c# file-io streamwriter