通过实例学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端。 智慧工地平台支持项目级、公司级、集团级多级权限划分,可根据企业的组织架构进行项目权限、功能…

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

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

【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…

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

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

MySql安装(Linux)

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

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

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

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

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

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

我三战华东师范大学的同桌真的很牛

标题党一下&#xff0c;其实是我的一个关系很好的高中同桌死磕华东师范大学三年&#xff0c;最终第二名上岸的故事。 其实我们是同一届的&#xff0c;我为了早点走选择了个排名还行的双非院校就走了&#xff0c;而我这个同桌相当有毅力&#xff0c;他能坚持这么久我其实很佩服&…

微信小程序开发一(常用的标签)

去微信公众平台注册账号确定怎么操作去网上找找 网址&#xff1a;微信公众平台 (qq.com)https://mp.weixin.qq.com/https://mp.weixin.qq.com/ 微信开放文档中找到工具栏下载微信开发者工具 网址&#xff1a;微信开发者工具&#xff08;稳定版 Stable Build&#xff09;下载地…

JavaWeb开发02-MYSQL-DDL-DML-DQL-多表设计-多表查询-事务-索引

一、MySQL概述 通过SQL语句可以操作数据库 关系型数据库&#xff1a; 只要是关系型数据库就可以用SQL语句这一统一标准进行操作数据库 1.MYSQL数据模型 客户端通过SQL语句交给了数据库管理系统DBMS&#xff0c;进行相应操作&#xff0c;创建一个一个数据库&#xff0c;体现为一…

如何理解信创产品?成为信创产品?

信创产品是指运用信息技术手段创造的产品&#xff0c;它是数据安全、网络安全的基础&#xff0c;也是新基建的重要组成部分。信创产品包括了IT基础设施如CPU芯片、服务器、存储、交换机、路由器、各种云和相关服务内容&#xff1b;基础软件如数据库、操作系统、中间件&#xff…

JRT在线初始化完善

之前实现的在线初始化留了个尾巴&#xff0c;那就是环境下载页构造zip包的时候没修改JRTBrowser的连接串地址为当前网站&#xff0c;这样就要求网站部署好之后给用户下载之前有人要把服务器的浏览器地址配置好。这样就增加一个运维工作&#xff0c;如果忘了或者不知道的人就会导…

nuxt3使用记录四:加载静态资源时路径的写法研究

在上一篇记录了NUXT进行SSG构建时&#xff0c;不仅会构建纯静态的html文件&#xff0c;也会构建一堆js文件。而如果网页中有加载静态资源&#xff0c;如图片&#xff0c;这时就需要注意了&#xff0c;不能简单的使用官网说的<img src"~/assets/img/nuxt.png" alt&…

Linux进阶---常见符号及其含义、常见报错

一、常见符号及其含义&#xff08;重要&#xff09; 二、 常见报错 • 找不到文件、文件不存在&#xff1a;No such file or directory • 没有权限 &#xff1a;Permission denied • 命令不存在 &#xff1a;command not found 1.找不到文件、文件不存在&#xff1a;No s…

AI智能电销机器人是什么?能给我们带来哪些便利?

科技的飞速发展&#xff0c;让很多“懒人”的幻想变成了现实&#xff0c;越来越多的人工智能产品被发明出来甚至完全替代日常生活中的工作。比如在电销行业&#xff0c;很多企业选择AI智能电销机器人进行外呼。那么你了解多少AI智能电销机器人呢&#xff1f;和小编kelaile520一…