首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想在c#中将三个txt文件合并成一个文件。

我想在c#中将三个txt文件合并成一个文件。
EN

Stack Overflow用户
提问于 2017-07-18 09:35:34
回答 3查看 1.2K关注 0票数 0

我是C#的新手,但随着我的进步而学习,所以请原谅我的问题,如果我的问题对大多数人来说太简单了。:-)

我的问题有两部分。

  • 首先:我有三个文本文件(有固定名称),内容完全不同。现在我希望将这些合并成一个文本文件。
  • 第二:在这个组合过程中,我还需要每个逗号(,) 在这些文件中,要更改为点(.)在输出组合文件中。

我成功地用StreamReader和StreamWriter做了一些类似的事情,并在vb中结合了ReadLine,但是在C#中无法让它工作。

我感谢我能得到的任何帮助。

/Tomas

EN

回答 3

Stack Overflow用户

发布于 2017-07-18 09:38:04

如果文件不大,可以使用以下代码段:

代码语言:javascript
运行
复制
File.WriteAllText("newfile", String.Concat(File.ReadAllText("file1"),File.ReadAllText("file2"),File.ReadAllText("file3")).Replace(",","."));
票数 4
EN

Stack Overflow用户

发布于 2017-07-18 09:43:21

通常情况下,当文件长且文件数任意时,您可以尝试Linq SelectMany

代码语言:javascript
运行
复制
 using System.IO; 
 using System.Linq; 

 ...

 string[] fileNames = new string[] {
   @"C:\MyFile1.txt", 
   @"C:\MyFile2.txt",
   @"C:\MyFile3.txt", 
 };

 ...

 File.WriteAllLines(@"C:\MyCombinedFile.txt", fileNames
   .SelectMany(file => File.ReadLines(file))
   .Select(line => line.Replace(',', '.')));
票数 2
EN

Stack Overflow用户

发布于 2017-07-18 10:07:02

代码语言:javascript
运行
复制
string[] files = new string[]{ @"E:\myfile1.txt", @"E:\myfile2.txt", @"E:\myfile3.txt" };

        string fileContent = string.Empty;
        foreach (var fileName in files)
        {
            using (System.IO.StreamReader Reader = new System.IO.StreamReader(fileName))
            {
                fileContent += Reader.ReadToEnd();
            }
        }
        fileContent = fileContent.Replace(',', '.');

        System.IO.File.WriteAllText(@"E:\myfile.txt", fileContent);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45162883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档