C# 程序逐行读取文件内容

c# 程序逐行读取文件内容

简介

在这里,我们将学习编写一个 C# 程序来逐行读取文件内容。有多种方法可以做到这一点。我们将一一讨论。

文件处理是用 C# 完成的。大多数情况下,文件用于存储数据。通俗地说,文件处理或文件管理是各种过程,例如创建文件、读取文件、写入文件、附加文件等。文件的读取和写入是文件处理中最常见的两个操作。

1。使用 File.ReadLines() 方法

逐行读取文件内容的第一种方法是使用 File.ReadLines() 方法。此方法接受字符编码作为可选参数。

嗯,这个过程可能会抛出一些异常,如IO异常。如果发生 I/O 错误,则会抛出此错误;如果找不到尝试打开的文件,则会抛出另一个错误 FileNotFoundException。

此过程也有一个缺点,因为当您处理大文件时,此技术效率相当低。这将返回 Enumerable,通过它我们可以在返回整个集合之前开始枚举。

算法

下面的算法将给出使用 File.ReadLines() 方法逐行读取文件内容的分步过程。

下面讨论的算法将引导我们创建程序。

第 1 步 − 创建一个字符串来存储文件路径的名称,记住这是一个绝对路径。

第 2 步 − 在逐行读取文件时,使用 IEumerable 获取最终结果。

第 3 步 − 通过使用Environment.Newline 获取为环境定义的换行符字符串。然后程序结束。

示例

以下是此过程的代码 –

using System;using System.Collections.Generic;using System.IO;public class Example {   public static void Main() {      string fileloc = @"D:ttptlocew.txt";      IEnumerable lines = File.ReadLines(fileloc);      Console.WriteLine(String.Join(Environment.NewLine, lines));   }} 

输出

This is a file.Hello from tutorials point.

首先需要创建一个字符串类型的变量,其中包含文件位置的地址。之后,在程序中逐行读取文件。

2。使用 File.ReadAllLines() 方法

另一种逐行读取文件内容的方法是使用 File.ReadAllLines() 方法。对于大数据文件,我们不应该将 ReadAllLines 用作 ReadAllLines,与返回 Enumerable 的 ReadLines 不同,ReadAllLines 给出一个包含文件所有行的字符串数组,我们必须等待返回整个字符串数组才能访问该数组。

此方法接受字符编码作为可选参数,类似于 ReadLines 的做法。那么这个过程可能会抛出一些异常,比如IO Exception。如果发生 I/O 错误,则会抛出此错误;如果找不到尝试打开的文件,则会抛出另一个错误 FileNotFoundException。

算法

下面的算法将给出使用 File.ReadAllLines() 方法逐行读取文件内容的分步过程。

下面讨论的算法引导我们创建程序。

第 1 步 − 创建一个字符串来存储文件路径的名称,记住这是一个绝对路径。

第 2 步 − 接下来,程序使用 ReadAllLines 打开一个文本文件,读取其所有行,然后结束它。

p>

第 3 步 − 通过使用Environment.Newline获取为环境定义的换行符字符串。然后程序结束。

示例

以下是此过程的代码 –

using System;using System.IO;public class Example {   public static void Main() {      string fileloc = @"D:ttptlocew.txt";      string[] lines = File.ReadAllLines(fileloc);      Console.WriteLine(String.Join(Environment.NewLine, lines));   }}

输出

This is a file.Hello from tutorials point.

首先需要创建一个字符串类型的变量,其中包含文件位置的地址。之后,在程序中逐行读取该文件。在这里,不同之处在于这些行是在字符串中读取的。它们都是在程序中使用string.join时连接起来的。

3。使用 StreamReader.ReadLine() 方法

还有一种通过 StreamReader 类逐行读取文件的方法。该方法是StreamReader.ReadLine()。这将运行到文件末尾。

它的工作原理是从当前流中读取一行文本并将其作为字符串返回。这将返回输入流中的下一行,如果输入流已结束,则返回 null。这样它就到达了文件的末尾。

如果发生任何 I/O 错误,也会出现 I/O 异常。另一个异常是 OutOfMemoryException,当没有足够的内存为返回的字符串创建缓冲区时会发生这种情况。

算法

下面的算法将给出使用 StreamReader.ReadLine() 方法逐行读取文件内容的分步过程。

下面讨论的算法将引导我们创建程序。

第 1 步 − 创建一个字符串来存储文件路径的名称,记住这是一个绝对路径。

第 2 步 −  创建一个新的读取来读取文件的内容。

第 3 步 − while 循环运行到文件末尾。当它达到 null 时就确定结束。

第 4 步 − 最终,代码在读取文件内容后退出。

示例

以下是该过程的代码 –

using System;using System.IO;public class Example {   public static void Main() {      string fileloc = @"D:ttptlocew.txt";      using (StreamReader read = new StreamReader(fileloc)) {         string line;         while ((line = read.ReadLine()) != null) {            Console.WriteLine(line);         }      }   }}

输出

This is a file.Hello from tutorials point.

在此方法中,也首先使用文件地址创建一个字符串。然后创建一个读取实例。它通过逐行读取内容到达空值,即文件末尾。

时间复杂度

从这里开始,我们正在逐行读取文件,但要一次性读取。无论使用哪种方法,即 File.ReadLines()、Files.ReadAllLines() 和 StreamReader.ReadLine()。他们所有人都在一次读取文件。所以,这里每个方法的时间复杂度都是O(1)。

结论

在本文中,我们广泛讨论了逐行读取文件内容的 C# 程序。我们了解了如何通过三种不同的方式来完成它。 File 类中的两个函数是 ReadLines() 和 ReadAllLines()。第三个来自 StreamReader 类。然后我们讨论了三种技术的代码和算法。我们希望本文能够帮助您增强有关 C# 的知识。

以上就是C# 程序逐行读取文件内容的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
C# Asp.net Core中启动类的Configure()方法有什么用?
上一篇 2025年12月17日 10:33:46
C# ASP.NET Core 中间件与 HttpModule 有何不同?
下一篇 2025年12月17日 10:34:21

相关推荐

  • 如何用代码实现精准切换指定程序窗口?

    程序窗口精准切换的代码实现方法 在日常电脑操作中,我们经常需要在不同的程序窗口间切换,Alt+Tab是常用的快捷键。但如果需要更精确地控制,例如只切换到特定程序的窗口,则需要借助代码实现。 实现步骤: 此方法的核心在于三个Windows API函数: 获取窗口句柄 (FindWindow): 使用F…

    2026年9月4日
    000
  • 吉利汽车1月销售新车26.67万辆,同比增长25%

    吉利汽车1月销量喜人,新能源汽车和出口业务表现亮眼!吉利汽车控股有限公司近日发布了1月份汽车销量数据,总销量达266,737辆,同比增长25%,展现出强劲的增长势头。 多品牌齐头并进,销量全面提升 1月份,吉利汽车旗下各品牌均取得了不错的成绩。吉利品牌销量达到224,718辆,同比增长30%;领克品…

    2026年9月4日
    000
  • opporeno3pro一键搬家的操作流程

    php小编小新为您介绍oppo reno3 pro一键搬家功能的操作流程。在购买新手机或更换设备时,迁移数据是一项重要而繁琐的任务。幸运的是,oppo reno3 pro提供了一键搬家功能,让您可以快速、轻松地迁移手机数据。接下来,我们将详细介绍这一操作流程,让您可以轻松实现数据迁移,享受全新设备带…

    2026年9月4日
    000
  • win10不慎把系统全删了怎么办?win10不慎把系统全删了的解决方法

    在使用电脑的过程中,我们通常会定期清理不必要的文件,但有时一不小心可能会误删系统文件,这在windows 10中尤为常见。如果不幸发生这种情况,不必过于担心,下面为大家提供了一份详细的解决教程。 如何解决Windows 10误删系统文件的问题: 1、首先,右键点击屏幕左下角的开始按钮,选择“Wind…

    2026年9月4日
    300
  • MySQL中怎么进行sql_mode查询与设置

    mysql中怎么查询与设置sql_mode?下面本篇文章给大家介绍一下mysql中sql_mode查询与设置的方法。 MySQL的sql_mode查询与设置 1,执行SQL查看【相关推荐:mysql视频教程】 select @@session.sql_mode; 全局级别: 查看 select @@…

    2026年9月4日
    000
  • AO3官网链接入口页面直达 AO3最新官网链接入口地址

    AO3官网链接入口页面直达到https://archiveofourown.org/,用户可通过浏览器直接访问,支持多设备适配,进入后可切换语言、注册登录账号,参与浏览、创作及社区互动。 官方直达一:“☞☞☞☞ao3官网链接入口页面直达☜☜☜☜☜点击进入”; 直达入口二:“☞☞☞☞点击AO3最新官网…

    2026年9月4日
    100
  • 惠普台式机开机蓝屏错误代码0x00000024的排查及处理方案

    惠普台式机开机蓝屏错误代码0x00000024的排查及处理方案惠普台式机开机蓝屏错误代码0x00000024的排查及处理方案惠普台式机开机蓝屏错误代码0x00000024的排查及处理方案惠普台式机开机蓝屏错误代码0x00000024的排查及处理方案

    蓝屏错误代码 0x00000024 通常由硬盘读取问题或 ntfs 文件系统驱动异常引起,可尝试以下步骤解决:1. 反复按 f8 进入安全模式排查软件或驱动问题;2. 在安全模式下运行 chkdsk c: /f /r 检查修复硬盘错误;3. 使用磁盘管理或 crystaldiskinfo 检测硬盘健…

    2026年9月4日 用户投稿
    000
  • 石头洗地机A10 Plus体验:功能全面升级,体验如何?

    石头洗地机A10 Plus体验:功能全面升级,体验如何?石头洗地机A10 Plus体验:功能全面升级,体验如何?石头洗地机A10 Plus体验:功能全面升级,体验如何?石头洗地机A10 Plus体验:功能全面升级,体验如何?

    石头科技在家庭清洁产品的强劲势头有目共睹,自有品牌的扫地机器人不仅站稳了脚跟,做到持续扩大用户群体,并在高端扫地机器人引入集尘、拖地、自清洁等功能的新时期仍有不俗竞争力。这之后,石头更是进入扫地机器人之外的品类,推出了手持吸尘器和洗地机产品。 洗地机是扫地机器人后的又一个家庭清洁热门赛道,早早地涌入…

    2026年9月4日 用户投稿
    100
  • 人工智能会彻底改变药物研发吗?这取决于如何使用

    人工智能会彻底改变药物研发吗?这取决于如何使用人工智能会彻底改变药物研发吗?这取决于如何使用人工智能会彻底改变药物研发吗?这取决于如何使用人工智能会彻底改变药物研发吗?这取决于如何使用

    人工智能在药物研发领域的应用:机遇与挑战并存 人工智能(AI)在药物研发中的潜力引发了广泛关注,但其作用究竟如何仍存在争议。一些人认为AI将彻底改变药物研发,而另一些人则持谨慎态度,认为AI的实际效果还有待验证。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek…

    2026年9月4日 用户投稿
    100
  • 失控进化高速火箭弹威力解析及基地刷卡终极攻略

    失控进化高速火箭弹威力解析及基地刷卡终极攻略失控进化高速火箭弹威力解析及基地刷卡终极攻略失控进化高速火箭弹威力解析及基地刷卡终极攻略失控进化高速火箭弹威力解析及基地刷卡终极攻略

    准备好让你的对手在《失控进化》中见识什么叫真正的“天外飞弹”了吗?高速火箭弹,就是那个能在瞬息之间扭转战局的秘密武器!今天,就带你深入探索火箭发射基地,全面解锁绿卡、蓝卡、红卡的获取技巧,让你轻松刷爆物资箱! 战场终结者:快!准!狠! 想象一下:锁定目标,按下发射键,一道火光撕裂天际——砰!高速火箭…

    2026年9月4日 用户投稿
    000
  • [C++]在windows基于C++编程署yolov8的openvino目标检测模型cmake项目部演示源码

    在#%#$#%@%@%$#%$#%#%#$%@_0f4137ed1502b5045d6083aa258b5c++42平台上,利用c++结合openvino部署yolov8目标检测模型,可以通过cmake构建项目实现高效推理。yolov8作为yolo系列的较新版本,在检测精度与推理速度方面均有显著提升…

    2026年9月4日
    000
  • oppofindx2pro设置指纹锁的图文教程

    php小编苹果带来oppo find x2 pro设置指纹锁的详细图文教程。通过本教程,您将学会如何在oppo find x2 pro手机上设置和管理指纹锁,确保您的手机数据安全。跟随步骤,轻松完成指纹锁的设置,让您的手机更加安全可靠。 1、在手机【指纹、面部与密码】设置中点击【添加指纹】 。 2、…

    2026年9月4日
    100
  • 在xps13上安装ubuntu16.04教程

    在windows界面下,通过磁盘管理器,从硬盘中分出40g的空闲空间。重启电脑,进入bios,将启动模式修改为achi(如果想系统安装成功后可以直接使用无线wifi,请将security boot关闭;否则,默认只能使用有线连接互联网!!)。退出bios,插入写有ubuntu 16.04的u盘,电脑…

    用户投稿 2026年9月4日
    700
  • 高效序列化与反序列化:nilportugues/serializer 库的实践

    最近我参与开发一个微服务架构的项目,需要在不同服务之间高效地交换复杂数据。起初,我尝试使用php的原生serialize()和unserialize()函数,但很快遇到了问题。由于服务之间代码库的独立性,以及版本迭代带来的类结构变化,序列化后的数据经常无法在其他服务中正确反序列化,导致服务间通信中断…

    用户投稿 2026年9月4日
    000
  • Spring Boot中如何将多个URL路由映射到同一个方法?

    Spring Boot 中实现多个 URL 路径映射到同一处理方法 在开发过程中,我们经常需要处理多种 URL 路径,但这些路径最终指向相同的处理逻辑。例如,访问文章详情页,既可以使用 /post/{id} 也可用 /post/{alias}。本文将介绍如何优雅地实现这一目标。 解决方案:利用 @P…

    2026年9月4日
    100
  • 小红书注销账号多久可以重新注册_小红书账号重新注册规则

    注销后需等待48小时冷却期,若用原手机号重新注册还需额外24小时解绑,共72小时;建议使用新邮箱注册可立即创建新账号。 如果您已注销小红书账号并希望重新注册,系统会根据平台规则对重新注册的时间和条件进行限制。以下是具体的处理方式: 本文运行环境:iPhone 15 Pro,iOS 18 一、48小时…

    2026年9月4日
    000
  • 告别繁琐的Magento 2运费设置:MageVision/module-free-shipping-admin 的高效解决方案

    最近,我负责维护一个 magento 2 电商平台,其中一个需求是为内部员工(通过后台下单)提供免运费服务。 这听起来很简单,但实际操作却让我头疼不已。 magento 2 默认的运费设置过于复杂,要为后台管理员单独设置免运费需要修改大量的代码,而且容易出错。 我尝试过一些其他的方法,但都未能找到一…

    用户投稿 2026年9月4日
    300
  • MySQL中什么是游标?如何使用游标?

    什么是游标?如何使用游标?下面本篇文章就来带大家了解一下mysql中的游标,介绍一下使用游标的步骤,希望对大家有所帮助! 要明白什么是游标,首先要了解存储过程,存储过程是事先经过编译并且存储在数据库中的一段SQL语句,他可以接受参数,也可以在其中使用IF语句、设置变量、循环等,比如下面语句用于创建一…

    2026年9月4日
    000
  • 《最终幻想战略版》重制为何姗姗来迟? 源代码丢失!

    《最终幻想战略版:伊瓦利斯战记》即将发售,导演前广和丰揭示了重制版制作过程中遇到的诸多困难。 在接受史克威尔艾尼克斯采访时,前广表示:“我们遇到了许多巨大的挑战,而这些挑战其实都源于一个核心问题:原版游戏的主要数据与源代码已经遗失。这并非因为保存不善或者管理不当——在当年,这类数据的保存并不是行业惯…

    2026年9月4日
    000
  • 小米日历怎么导入邮箱日程_小米日历导入邮箱日程的步骤教程

    小米日历怎么导入邮箱日程_小米日历导入邮箱日程的步骤教程小米日历怎么导入邮箱日程_小米日历导入邮箱日程的步骤教程小米日历怎么导入邮箱日程_小米日历导入邮箱日程的步骤教程小米日历怎么导入邮箱日程_小米日历导入邮箱日程的步骤教程

    php小编百草为您介绍小米日历如何导入邮箱日程。小米日历是一款智能日程管理应用,可以帮助您轻松管理生活中的各种安排。通过导入邮箱日程,您可以将邮箱中的日程信息同步到小米日历中,实现更加便捷的时间管理。接下来,让我们一起来了解小米日历导入邮箱日程的具体步骤吧! 1、打开小米日历,点击右上角。 2、然后…

    2026年9月4日 用户投稿
    100

发表回复

登录后才能评论
关注微信