【问题标题】:How to copy and paste text from one text file to another using C#? [duplicate]如何使用 C# 将文本从一个文本文件复制并粘贴到另一个文件? [复制]
【发布时间】:2016-01-12 17:38:51
【问题描述】:

我正在创建一个 C# 代码,它需要逐行读取文本文件,然后将每一行复制到一个新的文本文件中。我能够弄清楚如何逐行阅读,但是在逐行复制到我创建的新文本文件时遇到了麻烦。

这是我用来逐行读取原始文本文件的方法:

        int counter = 0;
        string line;

        // Read the file and display it line by line.
        System.IO.StreamReader file = new System.IO.StreamReader(@"c:\AnswerFile.txt");

        while ((line = file.ReadLine()) != null)
        {
            System.Console.WriteLine(line);
            counter++;
        }

        file.Close();
        System.Console.WriteLine("There were {0} lines.", counter);
        // Suspend the screen.
        System.Console.ReadLine();

任何帮助表示赞赏!谢谢你

编辑:我没有忘记编写将文本复制到另一个文本文件的代码。那是我遇到麻烦的部分。我在指定我希望文本转到的文件目录时尝试使用 streamwriter,但有些地方不对劲。我想创建一个代码,从一个文本文件逐行读取并将逐行复制(因为它从初始文件中读取)到新的文本文件。我希望这能澄清我的问题。

EDIT2:想通了伙计们。谢谢大家的帮助!我不得不打电话给我公司的安全部门,以授予我在 C 盘中写入的权限。

【问题讨论】:

  • File.Copy 有什么问题?
  • 您在寻找File.Copy吗?
  • 您的代码正在读取一个文件,但从不写入另一个文件。您是否忘记发布写入的代码,或者您是否在询问一般如何写入文件?
  • 您使用StreamWriter 是正确的,我建议也显示该代码。确保为编写器指定完整的 file 路径,而不仅仅是目录路径
  • 我的回答告诉你如何按照你的要求去做。

标签: c#


【解决方案1】:
        int counter = 0;
        string line;

        try
        {
            // Read the file and display it line by line.
            using (System.IO.StreamReader file = new System.IO.StreamReader(@"C:\\AnswerFile.txt"))
            {
                using (System.IO.StreamWriter fileWriter = new System.IO.StreamWriter(@"C:\outputFile.txt"))
                {
                    while ((line = file.ReadLine()) != null)
                    {
                        System.Console.WriteLine(line);
                        fileWriter.WriteLine(line);
                        counter++;
                    }
                }
            }
            System.Console.WriteLine("There were {0} lines.", counter);
            // Suspend the screen.
            System.Console.ReadLine();
        }
        catch (System.IO.IOException ex)
        {
            // Handle the Error Properly Here
        }

针对 cme​​ts 更新了关于缺少异常处理和在发生错误时关闭文件句柄的答案。

【讨论】:

  • 如果您遇到错误,谁会关闭您的文件?
  • 将其包装在 Try Catch finally 块中,并在 finally 块中执行 File.Close()。或者做一些错误处理。认为这样做超出了问题的范围。
  • @Garerth:我只是在说明一点,就我个人而言,我更愿意确保 OP 知道不要让它溜走,因为他们显然仍在学习一些基础知识。但是我不会因为不包括它而敲你的答案,这不是解决问题的必要条件。另外,我会推荐一个 using 块而不是 try/catch
  • 说得好,musefan。
  • 我之前尝试过,但它仍然给我一个问题。它突出显示: System.IO.StreamWriter fileWriter = new System.IO.StreamWriter(@"C:\outputFile.txt") 并告诉我“未处理未授权访问异常。访问路径被拒绝”。如果我自己创建了文件,我不知道为什么它会拒绝它,并且我通过检查文件的属性来确保它可以访问。关于如何解决这个问题的任何想法?
猜你喜欢
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 2011-06-04
  • 2013-02-26
  • 1970-01-01
  • 2014-12-05
相关资源
最近更新 更多