ASP.NET|日常开发中读写TXT文本详解

在这里插入图片描述
在这里插入图片描述

ASP.NET|日常开发中读写TXT文本详解

  • 前言
  • 一、读取 TXT 文本
    • 1.1 使用StreamReader类
  • 二、写入 TXT 文本
    • 2.1 使用StreamWriter类
  • 三、文件编码问题
    • 3.1 常见编码格式
  • 四、错误处理和性能考虑
    • 4.1 错误处理
    • 4.2 性能考虑
  • 结束语
  • 优质源码分享

ASP.NET|日常开发中读写TXT文本详解,在ASP.NET日常开发中,读写TXT文本文件是一个常见的任务,可能用于日志记录、配置文件、数据导出等多种场景。以下是对ASP.NET中读写TXT文本的详解。 使用StreamReader类,StreamReader类用于从文本文件中读取字符流。它提供了多种读取方法,下面具体讲解。

前言

        在数字浪潮汹涌澎湃的时代,程序开发宛如一座神秘而宏伟的魔法城堡,矗立在科技的浩瀚星空中。代码的字符,似那闪烁的星辰,按照特定的轨迹与节奏,组合、交织、碰撞,即将开启一场奇妙且充满无限可能的创造之旅。当空白的文档界面如同深邃的宇宙等待探索,程序员们则化身无畏的星辰开拓者,指尖在键盘上轻舞,准备用智慧与逻辑编织出足以改变世界运行规则的程序画卷,在 0 和 1 的二进制世界里,镌刻下属于人类创新与突破的不朽印记。

一、读取 TXT 文本

1.1 使用StreamReader类

  • 基本原理和使用方法

    StreamReader类用于从文本文件中读取字符流。它可以按行读取或者读取整个文件内容作为一个字符串。首先,需要创建一个StreamReader对象,并指定要读取的文件路径。

    例如,以下代码用于读取一个文本文件的内容并打印到控制台:

    using System;using System.IO;class Program{static void Main(){string filePath = "example.txt";try{using (StreamReader reader = new StreamReader(filePath)){string content = reader.ReadToEnd();Console.WriteLine(content);}}catch (FileNotFoundException){Console.WriteLine("文件未找到。");}catch (Exception ex){Console.WriteLine($"发生错误: {ex.Message}");}}}

    在这个示例中,using语句用于确保StreamReader对象在使用后正确地释放资源。ReadToEnd方法会读取文件中的所有文本内容,并将其作为一个字符串返回。

  • 按行读取

    如果文本文件内容较多,可能希望按行读取。可以使用ReadLine方法,如下所示:

    using (StreamReader reader = new StreamReader(filePath)){string line;while ((line = reader.ReadLine())!= null){Console.WriteLine(line);}}

    这种方式每次读取一行文本,直到文件末尾(ReadLine返回null)。这样对于处理大型文件或者需要逐行处理文件内容的情况非常有用,比如读取日志文件,对每一行日志进行分析。

二、写入 TXT 文本

2.1 使用StreamWriter类

  • 基本原理和使用方法

    StreamWriter类用于将字符流写入文本文件。和StreamReader类似,需要先创建StreamWriter对象,并指定文件路径和写入模式(如覆盖原有内容还是追加内容)。

    例如,以下代码用于将一个字符串写入文本文件:

    string contentToWrite = "这是要写入文本文件的内容。";string writeFilePath = "output.txt";try{using (StreamWriter writer = new StreamWriter(writeFilePath)){writer.Write(contentToWrite);}}catch (Exception ex){Console.WriteLine($"发生错误: {ex.Message}");}

    在这个示例中,Write方法将指定的字符串写入文件。如果文件不存在,StreamWriter会创建一个新文件;如果文件已经存在,默认会覆盖原有内容。

  • 追加内容到文件

    如果希望在原有文件内容的基础上追加新内容,可以在创建StreamWriter对象时指定append参数为true,如下所示:

    string additionalContent = "这是追加的内容。";try{using (StreamWriter writer = new StreamWriter(writeFilePath, true)){writer.Write(additionalContent);}}catch (Exception ex){Console.WriteLine($"发生错误: {ex.Message}");}

    这样,新内容就会添加到文件已有内容的末尾。

三、文件编码问题

3.1 常见编码格式

  • UTF - 8

    UTF - 8 是一种可变长度的 Unicode 编码方式,它能够表示世界上几乎所有的字符,并且是互联网上最常用的编码格式。在读取和写入文本文件时,如果没有指定编码格式,.NET 默认可能会使用 UTF - 8 编码。

    例如,在创建StreamReader或StreamWriter对象时,可以明确指定 UTF - 8 编码:

    using (StreamReader reader = new StreamReader(filePath, Encoding.UTF8)){// 读取操作}using (StreamWriter writer = new StreamWriter(writeFilePath, false, Encoding.UTF8)){// 写入操作}
  • ASCII

    ASCII 是一种 7 位的字符编码标准,主要用于表示英文字母、数字和一些常见的符号。它的编码范围有限,只能表示 128 个字符。在某些特定的场景下,可能需要使用 ASCII 编码来处理文本文件,比如处理一些只包含英文字符的简单配置文件。

    例如:

    using (StreamReader reader = new StreamReader(filePath, Encoding.ASCII)){// 读取操作}using (StreamWriter writer = new StreamWriter(writeFilePath, false, Encoding.ASCII)){// 写入操作}

四、错误处理和性能考虑

4.1 错误处理

    在读写文本文件过程中,可能会遇到各种错误,如文件不存在、权限不足、磁盘空间不足等。因此,良好的错误处理机制是很重要的。

    如前面的示例所示,使用try - catch块来捕获可能出现的异常。对于文件未找到的情况,可以给用户提供友好的提示;对于其他更严重的错误,如磁盘 I/O 错误,可以记录详细的错误信息,以便后续排查问题。

4.2 性能考虑

  • 缓冲机制

    StreamReader和StreamWriter类都有内部的缓冲机制。适当调整缓冲区大小可以在一定程度上提高读写性能。可以在创建对象时通过BufferedStream来指定缓冲区大小,不过一般情况下,默认的缓冲区大小已经能够满足大多数应用场景的需求。

  • 避免频繁的小量读写

    如果需要写入大量的小数据块,频繁地调用Write方法可能会导致性能下降。可以考虑将数据收集起来,一次性写入文件,以减少文件系统的 I/O 操作次数。同样,在读取文件时,尽量减少不必要的小量读取操作。

结束语

        亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

         愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

        至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


--------------- 业精于勤,荒于嬉 ---------------

请添加图片描述

--------------- 行成于思,毁于随 ---------------

优质源码分享

  • 【百篇源码模板】html5各行各业官网模板源码下载

  • 【模板源码】html实现酷炫美观的可视化大屏(十种风格示例,附源码)

  • 【VUE系列】VUE3实现个人网站模板源码

  • 【HTML源码】HTML5小游戏源码

  • 【C#实战案例】C# Winform贪吃蛇小游戏源码


在这里插入图片描述


     💞 关注博主 带你实现畅游前后端

     🏰 大屏可视化 带你体验酷炫大屏

     💯 神秘个人简介 带你体验不一样得介绍

     🎀 酷炫邀请函 带你体验高大上得邀请


     ① 🉑提供云服务部署(有自己的阿里云);
     ② 🉑提供前端、后端、应用程序、H5、小程序、公众号等相关业务;
     如🈶合作请联系我,期待您的联系。
    :本文撰写于CSDN平台,作者:xcLeigh所有权归作者所有) ,https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


     亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(评论),博主看见后一定及时给您答复,💌💌💌


原文地址:https://blog.csdn.net/weixin_43151418/article/details/144309317(防止抄袭,原文地址不可删除)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

notepad++快捷键-多行编辑中如何使所有行的光标都向后移动一个单词的长度(每行单词长度不一定一致)

问题:在使用notepad进行多行编辑(多行光标移动一个单词长度)时(将下图由左边变为右边),在使用Ctrl左键拖拽选中多行后,想要将每行的光标向后移动一个单词的长度(每行的单词长度不一样…

【IC】Hybrid Bonding技术

从纳米到埃米,芯片制造商正在竭尽全力缩小电路的尺寸。但面对算力需求的激增,一项涉及更大尺寸(数百或数千纳米)的技术——混合键合(Hybrid Bonding)——将在未来五年内扮演重要角色。近日,IEEE…

洛谷 B3643 图的存储 C语言

题目:https://www.luogu.com.cn/problem/B3643 题目描述 给定一个 n 个顶点 m 条边的无向图。请以邻接矩阵和邻接表的形式输出这一张图。 输入格式 第一行输入两个正整数 n 和 m,表示图的顶点数和边数。 第二行开始,往后 m 行&#xff0…

MATLAB里面,try-catch-end系列语言的含义与用法(含例程)

在 MATLAB 中,try-catch-end 语句用于处理可能会引发错误的代码。它允许你在“尝试”部分执行代码,如果代码执行过程中发生错误,将转到“捕获”部分执行相应的处理。这种错误处理机制可以提高程序的健壮性,避免因小错误导致整个程…

Python练习之列表的使用

(搭配主页知识点) 【练习要求】 针对知识点列表定义、追加、列表元素读取、查找安排的本实例。要求实现:有一个列表,内容是:[21,25,21,23,22,20],记录的是一批学生的年龄请通过列表的功能(方法),对其进行…

安装虚拟机(VMware)教程+win7

VMware 一.下载VMware Wworkstation Pro二、安装VMware三、安装虚拟机 一.下载VMware Wworkstation Pro 1.去vmware官网下载 官网 2.网盘下载 通过网盘分享的文件:vmware 链接: https://pan.baidu.com/s/1bOff79NFAmDlISQo6LK6PQ?pwdhunr 提取码: hunr --来自百…

C语言总共n位数,将后面的K个数与前面的数对调位置,前后二部分的数字顺序不变

例如&#xff1a;n5&#xff0c;k2&#xff0c;要处理的数字是12345&#xff0c;则处理后变成45123 这个问题可以通过以下步骤解决&#xff1a; 确定前后两部分的分界点。 对前后两部分分别进行反转。 以下是一个简单的C语言示例代码&#xff1a; #include<stdio.h>…

C# Winform双色纸牌接龙小游戏源码

文章目录 一、设计来源双色纸牌接龙小游戏讲解1.1 主界面1.2 游戏界面1.3 游戏界面快成功了 二、效果和源码2.1 动态效果2.2 源代码 源码下载更多优质源码分享 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/144419994 …

无人机航测系统技术特点!

一、无人机航测系统的设计逻辑 无人机航测系统的设计逻辑主要围绕实现高效、准确、安全的航空摄影测量展开。其设计目标是通过无人机搭载相机和传感器&#xff0c;利用先进的飞行控制系统和数据处理技术&#xff0c;实现对地表信息的全方位、高精度获取。 需求分析&#xff1…

分割双声道音频-Audacity和ffmpeg

双声道音频资源&#xff1a; https://download.csdn.net/download/yudelian/90135217 1、ffmpeg分割双声道音频 ffmpeg -i input.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav 2、audacity分割双生音频并且播放 选择分离立体声轨 可以看出分离出了两个音频…

以太网帧、IP数据报图解

注&#xff1a;本文为 “以太网帧、IP数据报”图解相关文章合辑。 未整理去重。 以太网帧、IP数据报的图解格式&#xff08;包含相关例题讲解&#xff09; Rebecca.Yan已于 2023-05-27 14:13:19 修改 一、基础知识 UDP 段、IP 数据包&#xff0c;以太网帧图示 通信过程中&…

docker简单命令

docker images 查看镜像文件 docker ps -a 查看容器文件 docker rm 0b2 删除容器文件&#xff0c;id取前三位即可 docker rmi e64 删除镜像文件&#xff08;先删容器才能删镜像&#xff09;&#xff0c;id取前三位即可 在包含Dockerfile文件的目录…

自然语言处理:我的学习心得与笔记

Pytorch 1.Pytorch基本语法 1.1 认识Pytorch 1.2 Pytorch中的autograd 2.Pytorch初步应用 2.1 使用Pytorch构建一个神经网络 2.2 使用Pytorch构建一个分类器 小节总结 学习了什么是Pytorch. 。Pytorch是一个基于Numpy的科学计算包,作为Numpy的替代者,向用户提供使用GPU强大…

‌HBase是什么,‌HBase介绍

‌官方网站&#xff1a;Apache HBase – Apache HBase Home HBase是一个分布式的、面向列的NoSQL数据库&#xff0c;主要用于存储和处理海量数据。‌它起源于Google的​​​​​​​BigTable论文&#xff0c;是Apache Hadoop项目的子项目。HBase设计用于高可靠性、高性能和可伸…

Pytorch | 从零构建AlexNet对CIFAR10进行分类

Pytorch | 从零构建AlexNet对CIFAR10进行分类 CIFAR10数据集AlexNet网络结构技术创新点性能表现影响和意义 AlexNet结构代码详解结构代码代码详解特征提取层 self.features分类部分self.classifier前向传播forward 训练过程和测试结果代码汇总alexnet.pytrain.pytest.py CIFAR1…

c语言-----数组

基本概念 数组是C语言中一种用于存储多个相同类型数据的数据结构。这些数据在内存中是连续存储的&#xff0c;可以通过索引&#xff08;下标&#xff09;来访问数组中的各个元素。数组的索引从0开始&#xff0c;这是C语言的规定。例如&#xff0c;一个有n个元素的数组&#xff…

【最新攻略】腾讯云双十一最强攻略密码

引言一起来薅羊毛准备工作双人成团PK有大礼! 福利总结 引言 腾讯云&#xff08;Tencent Cloud&#xff09;想必大家都听说过吧&#xff1f;腾讯云是腾讯提供的“云计算”服务。你可以把它想成一个超级强大的网络平台&#xff0c;帮助公司和开发者把自己的技术、数据、网站等东西…

【C#】List求并集、交集、差集

值类型List List<int> intList1 new List<int>() { 1, 2, 3 };List<int> intList2 new List<int>() { 3, 4, 5 };var result intList1.Union(intList2);Console.WriteLine($"并 {string.Join(,,result)}");result intList1.Intersect(in…

游戏渠道假量解决方案

某推广公司在推广过程中被查出“短期内点击量激增”“存在同一地址多次访问”“已注册用户重复注册”等数据作弊行为&#xff0c;法院判罚退还服务费200余万元&#xff0c;并赔偿违约金约350万元。 某公司为提升其游戏在应用商店榜单排名&#xff0c;委托某网络公司进行下载、注…

【Linux运维】配置ssh免密登录

1.场景描述 内网环境&#xff0c;需要同步17服务器的文件到10服务器进行备份。因为每次输入密码比较繁琐&#xff0c;如果实现免密登录后&#xff0c;即可简化脚本。 要求&#xff1a;需要2台服务器-免密登录 2.方案分析 &#xff08;1&#xff09;现状&#xff1a;登录需要输…