将文本附加到现有文件的 C# 程序

将文本附加到现有文件的 c# 程序

简介

追加是指在已经写好的文档中添加信息。在这里,我们将学习编写一个 C# 程序将文本附加到现有文件中。众所周知,文件处理是在 C# 中完成的。大多数情况下,文件用于存储数据。通俗地说,文件处理或文件管理是各种过程,例如创建文件、读取文件、写入文件、附加文件等等。

仅适用于现有文件?

众所周知,附加通常意味着在已经编写的文档中添加一条信息。但是如果我们尝试访问的文件不存在怎么办?假设我们正在搜索一个名为“madrid.txt”的文件来附加它。如果指定目录中存在该文件,则附加该文件。但是如果文件“madrid.txt”不存在怎么办?然后,程序会创建一个名为“madrid.txt”的新文件,您可以在其中添加信息。因此,当我们尝试以追加模式打开文件时,如果该特定文件不存在,则会创建一个新的空文件,其名称与我们要追加的文件的名称相同。

1。 File.AppendAllText(String, String) 方法

File.AppendAllText() 方法是解决追加到现有文件问题的一种非常常见的解决方案。该方法来自 File 类。该方法的语法如下。

public static void AppendAllText (string path, string? contents); 

在语法中,第一个字符串包含我们要附加的文件的路径。之后,我们要添加到文件中的信息如下。这也可能引发一些异常。如果我们尝试访问该文件的目录不存在,则会抛出 DriectoryNotFoundException。另一个主要抛出的异常是 UnauthorizedAccessException。当程序员尝试访问的文件是只读文件或指定的路径指向目录而不是文件时,就会发生这种情况。

使用此方法时,无论抛出异常,文件句柄都将关闭。

算法

现在,我们将讨论创建一个程序以使用 File.AppendAllText() 将信息添加到文件的算法。

第 1 步 – 首先,我们创建一个字符串来存储要附加的文件的地址,然后提供文件的地址。

步骤 2 – 然后我们使用 FileAppendAllText() 以追加模式打开文件并将特定文本添加到文件中。如果该文件不存在,则会使用该名称创建一个新文件并添加文本。

步骤 3 – 最后,从文件中读取文本,以便我们可以看到文件已附加,然后程序退出。

示例

// A program to append the fileusing System;using System.IO;public class Program {   public static void Main() {      string loca = @"D:madrid.txt";      // Adding the text to the madrid.txt file      File.AppendAllText(loca, Environment.NewLine + "UCL");      // Reading the text from the madrid.txt file      string txtappd = File.ReadAllText(loca);      Console.WriteLine(txtappd);   }}

输出

UCL

因此,提供了文件的路径,然后该方法打开指定的文件,添加程序员想要的信息,然后关闭该文件。很简单,但是如果我们想将一个文件的全部内容复制到我们想要的文件中怎么办?是的,这个方法也解决了我们复制文件的问题。现在是讨论算法的时候了。

算法

该算法是关于使用 File.AppendAllText() 的。

第 1 步 – 创建一个用于存储源文件地址的字符串。

步骤 2 – 创建另一个字符串来存储目标文件的地址。

步骤 3 – File.Readlines() 用于复制字符串中的源文件。

步骤 4 – 文件由 File.AppendAllText() 以附加模式打开。然后添加文本。

步骤 5 – 程序完成后退出。

示例

// A program to append the fileusing System;using System.Collections.Generic;using System.IO;public class Program {   public static void Main() {      string sttr1 = @"D:trophies.txt";      string sttr2 = @"D:madrid.txt";      // Copying all the text from the source file in a string and then adding to the destination file      IEnumerable inform = File.ReadLines(sttr1);      File.AppendAllLines(sttr2, inform);   }} 

现在让我们看看另一种方法。

2。 File.AppendText() 方法

SteamWriter 类是一个非常通用的类。它提供了很多写入文件的方法。 WriteLine() 或 Write() 是可用于向流添加文本的不同方法。

public static System.IO.StreamWriter AppendText (string path); 

可以使用 File.AppendAllText() 方法创建 StreamWriter 实例,该方法将文本以 UTF-8 编码附加到现有文件中。如果指定的文件不存在,它还会创建一个新文件。

如果我们尝试访问该文件的目录不存在,则会抛出 DriectoryNotFoundException。另一个主要抛出的异常是 UnauthorizedAccessException。当程序员尝试访问的文件是只读文件或指定的路径指向目录而不是文件时,就会发生这种情况。

算法

现在,我们将讨论创建一个程序以使用 File.AppendText() 将信息添加到文件的算法。

第 1 步 – 首先,我们创建一个字符串来存储要附加的文件的地址,然后提供文件的地址。

第 2 步 – 现在,我们创建 StreamReader 的实例。此步骤以追加模式打开文件并向文件添加文本。我们使用 File.AppendText() 来添加文本。

StreamReader.Write() 方法用于追加。如果用户想要附加文本,然后在末尾添加行终止符。使用 StreamReader.WriteLine() 方法。

步骤 3 – 程序完成后退出。

示例

// A program to append the fileusing System;using System.IO;public class Program {   public static void Main() {      string loca = @"D:madrid.txt";      // Adding the text to the specified file      using (StreamWriter sw = File.AppendText(loca)) {         sw.Write("UCL"); //use sw.WriteLine(If you want to add line termination)      }      // Read the text from the appended file      string txtappd = File.ReadAllText(loca);      Console.WriteLine(txtappd);   }}

输出

UCL

StreamWriter(String, Boolean) 构造函数重载版本也相当于 File.AppendText()。而对于布尔参数,我们使用 true。

StreanWriter 算法(字符串、布尔值)

现在,我们将讨论创建一个程序以使用 StreamWriter(String, Boolean) 将信息添加到文件的算法。

第 1 步 – 首先,我们创建一个字符串来存储要附加的文件的地址,然后提供文件的地址

第 2 步− 现在,我们创建 StreamReader 的实例。此步骤以追加模式打开文件并向文件添加文本。我们使用新的 Streamwriter() 来添加信息。在这里,我们使用 StreamReader.Write() 方法进行追加。但如果我们需要附加文本,然后在末尾添加行终止符,那么我们可以使用 StreamReader.WriteLine() 方法。

第 3 步− 最后,从文件中读取文本,以便我们可以看到文件已附加,然后程序退出。

示例

// A program to append the fileusing System;using System.IO;public class Program {   public static void Main() {      string loca = @"D:madrid.txt";      // Adding the text to the specified file      using (StreamWriter sw = new StreamWriter(loca, true)) {         sw.Write("UCL"); //use sw.WriteLine(If you want to add line termination)      }      // Read the text from the appended file      string txtappd = File.ReadAllText(loca);      Console.WriteLine(txtappd);   } }

输出

UCL

时间复杂度

由于在这两个进程中,我们都使用文件处理。在第一个算法中,我们使用 File.AppendAllText(),在第二个算法中,我们使用 File.AppendText(),它们都只是附加文件。他们正在获取新文本并将其添加到文件末尾。所以,这两种方法的时间复杂度都是O(1)。

结论

在本文中,我们讨论了将文本附加到现有文件的不同方法。首先我们讨论了是否需要以及是否只能对现有文件进行。然后我们讨论了追加File.AppendAllText()和File.AppendText()的方法。最后,我们讨论了算法和算法的代码。

我们希望本文能够帮助您增强有关 C# 的知识。

以上就是将文本附加到现有文件的 C# 程序的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1435507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 11:11:35
下一篇 2025年12月10日 14:50:36

相关推荐

  • 简要概述 C# 和 .NET 生态系统

    c# 是一种面向对象、类型安全的通用编程语言,其重点是提高程序员的工作效率。它试图通过表现力、简单性和对性能的关注来实现这种生产力。它适用于不同的平台,例如 windows、mac 和 linux。 类型安全 C# 是一种静态类型语言。这意味着在编译程序时会验证类型。这可以在程序运行之前消除大量错误…

    2025年12月17日
    000
  • 如何使用C# FileStream类?

    FileStream类提供了用于文件操作(例如读取和写入)的流。 创建一个像这样的对象 FileStream fstream = new FileStream(“d:ew.txt”, FileMode.OpenOrCreate); 上面我们使用了 FileMode.OpenOrCreate 来打开或…

    2025年12月17日
    000
  • C# 中的数字

    对于 C# 中的数字,请使用 int 类型。它表示一个整数,可以是正整数或负整数。 让我们看看如何在 C# 中使用数学运算符 + – 将两个整数相加 using System;using System.Linq;class Program { static void Main() { i…

    2025年12月17日
    000
  • 显示 LINQ Aggregate() 方法用法的 C# 程序

    Aggregate() 方法是一种功能强大的 LINQ 方法,允许您对元素序列执行归约操作。此方法可用于对一组数据执行计算,例如求一组数字的总和、乘积或最大值。在本文中,我们将探讨如何在 C# 程序中使用 Aggregate() 方法。 什么是Aggregate()方法? Aggregate() 方…

    2025年12月17日
    000
  • C# 中的 BitArray 类

    BitArray 类管理一个紧凑的位值数组,这些位值表示为布尔值,其中 true 表示该位打开 (1),false 表示该位关闭 (0)。 下表列出了 BitArray 类的一些常用方法 – Sr.No. 方法及说明 1public BitArray And(BitArray value…

    2025年12月17日
    000
  • C# 支持哪些不同类型的条件语句?

    条件语句要求程序员指定一个或多个条件,由程序进行评估或测试,以及一个或多个语句,在条件确定为真时执行,可选地,在条件确定为假时执行其他语句。 以下是条件语句的类型: 序号 语句与描述 1if语句 if语句由一个布尔表达式后跟一个或多个语句组成。 2if…else语句 if语句后面可以跟一…

    2025年12月17日
    000
  • 如何在C#中获取目录中的所有文件、子文件及其大小?

    为了获取文件,C#提供了一个方法Directory.GetFiles Directory.GetFiles返回所有文件的名称(包括它们的路径) ) 匹配指定的搜索模式,并可选择搜索子目录。 在下面的示例中,* 匹配该位置中的零个或多个字符。 SearchOption TopDirectoryOnly…

    2025年12月17日
    000
  • JavaScript 和 C# 之间的区别

    Two programming languages that have been widely used in the field of software development are JavaScript and C# (pronounce “C sharp”). Bot…

    2025年12月17日
    000
  • C# ASP.NET Core 项目中 Program.cs 文件的用途是什么?

    ASP.NET Core Web应用实际上是一个启动执行的控制台项目。 从 Program 类中的入口点 public static void Main() 开始,我们可以在其中创建一个托管网络应用程序。 public class Program{ public static void Main(s…

    2025年12月17日
    000
  • C#中SortedList和SortedDictionary的区别

    C#中的SortedList和SortedDictionary都是用于数据存储的数据结构类型,现在我们可以根据特征和性质来区分它们。 以下是SortedList之间的重要区别和 SortedDictionary。 Sr。编号 键 SortedList SortedDictionary 1 td&gt…

    2025年12月17日
    000
  • C#中Array类实现了哪些接口?

    System.Array 实现了 ICloneable、IList、ICollection 和 IEnumerable 等接口。ICloneable 接口创建现有对象的副本,即克隆。 让我们了解一下 ICloneable 接口。它只有一个 Clone() 方法,因为它创建一个新对象,该对象是当前实例…

    2025年12月17日
    000
  • C# 中方法重写和方法隐藏的区别

    在C#中,有两种机制可以通过子类重新定义或提供父类方法的新实现,这两种机制被称为方法重写和方法隐藏。现在根据方法重新实现的方式,我们可以区分它们。 以下是方法重写和方法隐藏之间的重要区别。 序号 关键字 方法重写 方法隐藏 1定义方法重写是实现多态性的一种机制,其中父类和子类具有相同的方法,包括参数…

    2025年12月17日
    000
  • C# 中的子字符串

    Substring 用于在 C# 中获取字符串的子部分。为此,我们有 substring() 方法。使用 C# 中的 substring() 方法检查每个子字符串是否有唯一字符。循环它直到字符串的长度。 如果子字符串中的任何一个与另一个子字符串匹配,则意味着该字符串没有唯一字符。 您可以尝试运行以下…

    2025年12月17日
    000
  • C# 中检查两个 ValueTuple T1 是否相等

    C#中的ValueTuple是一种用于表示数据结构的结构,即可以保存多个不同类型的值的数据类型。 ValueTuples 在 C# 7.0 中引入,是对经典元组的重大改进,因为它们为字段提供语义名称。本文旨在教您如何比较 ValueTuple 的两个实例以检查它们是否相等。让我们开始吧! 理解 C#…

    2025年12月17日
    000
  • C# 线程中的 Join、Sleep 和 Abort 方法

    Join 阻塞调用线程直到线程终止,同时继续执行标准 COM 和 SendMessage 泵送。该方法有不同的重载形式。 Sleep 使线程暂停一段时间。 Abort Abort方法用于销毁线程。 让我们看一下线程中 Join() 的示例 – 示例 using System;using …

    2025年12月17日
    000
  • C# 中的线程池

    C#中的线程池是线程的集合。它用于在后台执行任务。当线程完成任务时,它被发送到队列,其中存在所有等待线程。这样做是为了可以重用它。 让我们看看如何创建线程池。 首先,使用以下命名空间 – using System.Threading; 现在,使用线程池对象调用线程池类。调用 QueueU…

    2025年12月17日
    000
  • C# ASP.NET Core 中有哪些可用的各种 JSON 文件?

    ASP.net Core是从之前的ASP.net版本重新架构的,其中包括配置依赖于 web.config 文件中的 System.Configuration 和 xml 配置。在 ASP.net Core 中,一种声明和访问全局设置的新简单方法解决方案、项目特定设置、客户端特定设置等。新的配置模型,…

    2025年12月17日
    000
  • 使用 C# 使用您自己的字体进行打印

    要在 C# 中打印自己的字体,首先构造 – FontFamily 对象Font 对象 FontFamily 对象设置 Arial、TimesNewRoman 等字体,而 Font 对象设置字体的大小和样式。 让我们创建一个 Arial 字体样式。 FontFamily myFontFam…

    2025年12月17日
    000
  • C# 中有哪些重要的命名空间?提供每个的简要描述

    .NET 包含大量命名空间,如果包含第三方库,还会有更多命名空间。但是,有一些您会反复使用。这里有 20 种,可以帮助您解决 80% 的常见、重复出现的编程问题。 系统 包含最基本的类型。其中包括常用的类、结构、枚举、事件、接口等。 System.Text 包含表示 ASCII 和 Unicode …

    2025年12月17日
    000
  • 为什么 C# 数组中的索引从零开始?

    数组是指向索引内存中地址的指针。该索引是数组的第一个元素。在这里,索引就像一个偏移量,这个概念甚至早于 C 语言起源。 假设你的数组元素从 0Xff000 开始,有 5 个元素,如 {35,23,67,88,90}。因此,内存中的数组将如下所示,因为 int 是使用 4 个字节存储的。 0Xff00…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信