通过实例学C#之StreamReader类

简介

        可以通过此类读取计算机上的文本文件内容。

        在程序的Debug文件夹下面新建一个文本文件,命名为test.txt,在里面输入hello world!


构造函数

StreamReader (Stream stream,Encoding encoding)

        使用流对象stream以及编码方式encoding来创建一个读取流streamReader。

 static void Main(string[] args){FileStream fs=new FileStream("test.txt",FileMode.Open,FileAccess.ReadWrite);StreamReader sr=new StreamReader(fs,Encoding.UTF8);Console.ReadKey();}

StreamReader (string path, Encoding encoding)

        通过文件路径path,以及编码方式encoding来创建一个读取流streamReader。

static void Main(string[] args)
{StreamReader sr = new StreamReader("test.txt", Encoding.UTF8);Console.ReadKey();
}

常用属性

CurrentEncoding

        获取streamReader实例的当前文本编码格式。

static void Main(string[] args)
{StreamReader sr = new StreamReader("test.txt");Console.WriteLine("sr的编码方式为:"+sr.CurrentEncoding);StreamReader sr1 = new StreamReader("test.txt", Encoding.ASCII);Console.WriteLine("sr1的编码方式为:" + sr1.CurrentEncoding);Console.ReadKey();
}运行结果:
sr的编码方式为:System.Text.UTF8Encoding
sr1的编码方式为:System.Text.ASCIIEncoding

可以看到,创建实例时,如果不指定编码格式,那么会默认为utf8格式。如果想要指定为其他格式,则需要在创建实例时,提供对应的参数。


EndOfStream

        判断streamReader的位置是否处于末尾,如果是,返回true;否则,返回false。在读取时,可以根据此属性来判断是否已经把全部内容读完。


常用方法

Close()

        当使用完streamReader实例以后,调用Close()方法,可以关闭读取流,并且释放它所占用的资源。


DiscardBufferedData()

        丢弃输入寄存器中的数据,一般读取文本文件内容前可以先执行此方法,可以避免输入寄存器原有的数据,混合文本文件的内容一起被读取。


Peek()

        返回读取流下一个读取字符的Ascii码,但不使用下一个字符,如果当前已经时最后一个字符了,那么返回-1。


Read ()

        读取一个字符,返回该字符对应的Ascii码,并且把streamReader实例的位置增加1,如果没有可以读取的字符,那么返回-1。

static void Main(string[] args)
{StreamReader sr = new StreamReader("test.txt");Console.WriteLine("下一个字符的ascii码是:"+sr.Peek());Console.WriteLine("读取的当前字符ascii码是:"+sr.Read());Console.WriteLine("下一个字符的ascii码是:" + sr.Peek());sr.Close();Console.ReadKey();
}

Read (char[] buffer, int index, int count)

        从当前streamReader实例中读取从index开始的count个字符到字符数组buffer中。

static void Main(string[] args)
{char[] array = new char[5];StreamReader sr = new StreamReader("test.txt");sr.Read(array, 0, 5);foreach (char c in array){Console.WriteLine(c);}sr.Close();Console.ReadKey();
}运行结果:
h
e
l
l
o

ReadLine()

        从streamReader实例中读取一行并返回,然后提升流的当前位置。

        打开debug文件夹的test.txt文件,然后在hello world!下面再加一行,输入i love c#

static void Main(string[] args)
{StreamReader sr = new StreamReader("test.txt");Console.WriteLine("读取一行:"+ sr.ReadLine());Console.WriteLine("读取一行:" + sr.ReadLine());sr.Close();Console.ReadKey();
}运行结果:
读取一行:hello world!
读取一行:i love c#

ReadToEnd()

        读取streamReader实例中的所有内容,并返回string。

static void Main(string[] args)
{StreamReader sr = new StreamReader("test.txt");string str=sr.ReadToEnd();Console.WriteLine(str);sr.Close();Console.ReadKey();
}运行结果:
hello world!
i love c#

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

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

相关文章

SpringCloud +UniApp技术开发saas模式的智慧工地云平台源码,支持可视化大屏端、手机端、平板端、PC端

基于微服务架构JavaSpring Cloud UniApp MySql技术开发saas模式的一套智慧工地云平台源码,支持多端展示:可视化大屏端、手机端、平板端、PC端。 智慧工地平台支持项目级、公司级、集团级多级权限划分,可根据企业的组织架构进行项目权限、功能…

基于双向长短期神经网络的居民用电功率预测,基于gru神经网络的居民用电功率预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 BILSTM神经网络 基于双向长短期神经网络的居民用电功率预测,基于gru神经网络的居民用电功率预测 完整代码:基于双向长短期神经网络的居民用电功率预测,基于gru神经网络的居民用电功率预测(代码完整,数据齐全)资源-CSDN文库…

编程入门(四)【计算机网络基础(由一根网线连接两个电脑开始)】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 前言两个电脑如何互连呢?集线器、交换机与路由器总结 前言 当你有…

【opencv】dnn示例-speech_recognition.cpp 使用DNN模块结合音频信号处理技术实现的英文语音识别...

模型下载地址: https://drive.google.com/drive/folders/1wLtxyao4ItAg8tt4Sb63zt6qXzhcQoR6 终端输出:(audio6.mp3 、audio10.mp3) [ERROR:00.002] global cap_ffmpeg_impl.hpp:1112 open VIDEOIO/FFMPEG: unsupported parameter…

CentOS常用命令

CentOS是一个流行的Linux发行版,以下是一些在CentOS系统中常用的命令: 1. yum:CentOS的软件包管理器,用于安装、更新和卸载软件包。 - yum install package_name - 安装软件包 - yum update - 更新已安装的软件包 - yum remove package_name - 卸载软件包…

华为手机p70即将上市,国内手机市场或迎来新局面?

4月15日,华为官宣手机品牌全新升级,p系列品牌升级为Pura。华为P70系列手机预计将于2024年第一季度末发布,而网友也纷纷表示期待p70在拍照、性能上的全新突破。 网友们对华为P70系列的热情高涨,也印证了国内高端手机市场的潜力巨大…

MySql安装(Linux)

一、清除原来的mysql环境 在前期建议使用root用户来进行操作,使用 su -来切换成root用户,但是如果老是提示认证失败,那么有可能我们的root密码并没有被设置, 我们可以先设置root的密码 sudo passwd root 然后就可以切换了。 …

【AI】OpenAI简单Demo-HelloWorld

from dotenv import load_dotenv, find_dotenv from langchain_openai import OpenAI from langchain_openai import OpenAI from openai import OpenAI from langchain_community.llms import OpenAIimport httpx import requestsdef func1():# 从更上的目录中找到.env文件&am…

SQL Server重置自增序列初始值

问题描述:数据库迁移后序列值没有正常迁移,导致数据插入失败 1、查询当前数据库数据自增序列最大值 select MAX( id ) from Table_Name 注意: id为表中自增字段值,Table_Name为表名 2、修改自增序列值为表中最大值 dbcc chec…

Mac 利用Homebrew安装JDK

一、安装JDK17 1.安装openjdk17 2.把homebrew安装的openjdk17软链接到系统目录: brew install openjdk17 sudo ln -sfn $(brew --prefix)/opt/openjdk17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk 一、检查是否安装成功 在Termina…

深入解析Apache Hadoop YARN:工作原理与核心组件

什么是YARN? YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统中的一个重要组件,用于资源管理和作业调度。它是Hadoop 2.x版本中的一个关键特性,取代了旧版本中的JobTracker和TaskTracker。YARN的设计目…

蚂蚁云科技集团应用研究院院长李亚锋先生受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 蚂蚁云科技集团应用研究院院长李亚锋先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“探索AI技术对项目管理发展的影响”。大会将于5月25-26日在北京举办,敬请关注! 议题简要: 19…

CSS的语法规则——基础选择器

元素&#xff1a; 用法&#xff1a; 标签名&#xff1a;{style的内容} 特点&#xff1a; 全局性&#xff0c;使用后&#xff0c;所有的相同标签都是同一种样式。 举例&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UT…

双目人体姿态匹配 | 基于双目视觉的人体姿态匹配+识别算法实现

项目应用场景 面向双目立体视觉的人体姿态匹配场景&#xff0c;项目采用 Visual Studio C 开发&#xff0c;具有人体姿态匹配 人体姿态识别能力。 项目效果 项目细节 > 具体参见项目 README.md项目获取 https://download.csdn.net/download/weixin_42405819/89113399

基于HC32F460petb芯片给FLASH安装fat文件系统

FAT&#xff08;File Allocation Table&#xff09;文件系统是一种用于磁盘驱动器、USB闪存驱动器、软盘等存储设备的文件系统。FAT文件系统主要有两种变体&#xff1a;FAT12和FAT16&#xff0c;它们后来被FAT32所取代。FAT32文件系统是对FAT16的扩展&#xff0c;支持更大的文件…

C# 调用C++dll时,出现“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”

当C#调用C编写的DLL时出现“尝试读取或写入受保护的内存”错误时&#xff0c;这个问题通常是由于以下几个方面引起的&#xff1a; 数据类型不匹配&#xff1a; DLL接口中的参数类型没有正确映射到C#。例如&#xff0c;C中的指针类型可能需要通过IntPtr在C#中传递&#xff0c;并…

怎么找平台?伦敦金交易平台查询

在过去的一个星期里&#xff0c;伦敦金价格再创辉煌&#xff0c;一举突破2400大关&#xff0c;并且将历史新高刷新至2431。虽然随后金价出现较大幅度的下跌&#xff0c;但对多数投资者而言&#xff0c;这不是下跌而是回调。回调之后&#xff0c;伦敦金的涨势将继续。既然有这么…

安卓手机APP开发__媒体开发部分__媒体源

安卓手机APP开发__媒体开发部分__媒体源 目录 概述 定制媒体源的创建 基于播放列表的API的媒体源 高级的媒体源的组合 概述 在ExoPlayer&#xff0c;媒体的每一个部分都能表示为一个媒体项。 然而内部来看&#xff0c;播放器需要媒体源的实例来播放内容。 播放器使用一个…

shell流程控制语句

1 test test 条件 条件为真返回 0&#xff0c;条件为假返回 1 [ 条件 ] test 能够理解3种类型的表达式 1.文件测试 2.字符串比较 3.数字比较 文件测试 -f存在且是普通文件-d存在且是目录-h存在且是符号链接-b块设备-c字符设备-e文件存在 字符串 -n STRING字符串长度不为零…

neo4j使用详解(终章、neo4j的java driver使用模板及工具类——<可用于生产>)

Neo4j系列导航: neo4j安装及简单实践 cypher语法基础 cypher插入语法 cypher插入语法 cypher查询语法 cypher通用语法 cypher函数语法 neo4j索引及调优 neo4j java Driver等更多 1. 简介 本文主要是java使用neo4j driver操作neo4j的模板项目及非常有用的工具类,主要包括: 图…