【问题标题】:I want to combine three txt-files into one single file in c# [duplicate]我想在c#中将三个txt文件合并为一个文件[重复]
【发布时间】:2017-12-23 02:11:51
【问题描述】:

我是 C# 的新手,但我会在前进的过程中不断学习,如果我的问题对你们大多数人来说可能有点太简单,请原谅我。 :-)

我的问题分为两部分。

  • 首先:我总共有三个文本文件(具有固定名称) 不同的内容。我现在希望这些组合成一个 文本文件。

  • 第二:在这个组合过程中,我还想要每个逗号(,)
    在这些文件中要更改为输出组合文件中的点(.)。

我已经设法用 StreamReader 和 StreamWriter 结合 vb 中的 ReadLine 做一些类似的事情,但不能让它在 C# 中工作。

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

/托马斯

【问题讨论】:

  • 将 3 个文件读取为字符串(谷歌搜索,它并不难)为您的 , .+ 将它们彼此发送一个 .Replace

标签: c# text


【解决方案1】:

如果文件不大可以使用这个sn-p:

File.WriteAllText("newfile", String.Concat(File.ReadAllText("file1"),File.ReadAllText("file2"),File.ReadAllText("file3")).Replace(",","."));

【讨论】:

    【解决方案2】:

    一般情况,当文件任意个文件你可以尝试LinqSelectMany

     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(',', '.')));
    

    【讨论】:

      【解决方案3】:
      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);
      

      【讨论】:

      • 谢谢你们。问题解决了。你摇滚! :-)
      猜你喜欢
      • 2019-09-12
      • 1970-01-01
      • 2020-09-18
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      相关资源
      最近更新 更多