当前位置: 首页 > news >正文

C#的StreamReader类使用说明

C#的StreamReader类使用说明

  • 一:StreamReader类简单说明
  • 二:StreamReader类的构造函数
  • 三:StreamReader类的属性
  • 四:StreamReader类的常用方法
    • 1: StreamReader.Close 的方法介绍
    • 2: StreamReader.DiscardBufferedData 的方法介绍
    • 3: StreamReader.Dispose(Boolean) 的方法介绍
    • 4: StreamReader.Read 的方法介绍
    • 5: StreamReader.ReadLine 方法介绍
    • 6: StreamReader.ReadToEnd 方法介绍

一:StreamReader类简单说明

  1)StreamReader实现一个 TextReader,使其以一种特定的编码从字节流中读取字符。
  2)专为特定编码中的字符输入设计,而 Stream类用于字节输入和输出。 用于 StreamReader 从 标准文本文件中读取信息行。
  3)StreamReader 默认为 UTF-8 编码,除非另有指定,而不是默认为当前系统的 ANSI 代码页。

二:StreamReader类的构造函数

构造函数构造函数 说明
StreamReader(Stream)为指定的流,初始化 StreamReader 类的新实例。
StreamReader(Stream, Boolean)用指定的字节顺序标记检测选项,为指定的流,初始化 StreamReader 类的一个新实例。
StreamReader(Stream, Encoding)用指定的字符编码为指定的流,初始化 StreamReader 类的一个新实例。
StreamReader(Stream, Encoding, Boolean)为指定的流,初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。
StreamReader(Stream, Encoding, Boolean, Int32)为指定的流,初始化 StreamReader 类的新实例,带有指定的字符编码、字节顺序标记检测选项和缓冲区大小。
StreamReader(String)为指定的文件名,初始化 StreamReader 类的新实例。
StreamReader(String, Boolean)为指定的文件名,初始化 StreamReader 类的新实例,带有指定的字节顺序标记检测选项。
StreamReader(String, Encoding)用指定的字符编码,为指定的文件名,初始化 StreamReader 类的一个新实例。
StreamReader(String, Encoding, Boolean)为指定的文件名,初始化 StreamReader 类的新实例,带有指定的字符编码和字节顺序标记检测选项。
StreamReader(String, Encoding, Boolean, Int32)为指定的文件名,初始化 StreamReader 类的新实例,带有指定字符编码、字节顺序标记检测选项和缓冲区大小。

三:StreamReader类的属性

构造函数构造函数 说明
BaseStream返回基础流。
CurrentEncoding获取当前 StreamReader 对象正在使用的当前字符编码。
EndOfStream获取一个值,该值指示当前的流位置是否在流结尾。

四:StreamReader类的常用方法

1: StreamReader.Close 的方法介绍

1)作用:关闭 StreamReader 对象和基础流,并释放与读取器关联的所有系统资源。
2)语法:

public override void Close ();

2: StreamReader.DiscardBufferedData 的方法介绍

1)作用:清除内部缓冲区。
2)语法:

public void DiscardBufferedData ();

3)补充说明:
  使用 DiscardBufferedData 方法可重置对象的内部缓冲区 StreamReader 。 仅当内部缓冲区和的位置不匹配时,才需要调用此方法 BaseStream 。 在将数据读入缓冲区,并在基础流中查找新位置时,这些位置可能会变得不匹配。 此方法会降低性能,只应在绝对必要的情况下使用,例如,当你想要多次读取对象的部分内容时 StreamReader 。

3: StreamReader.Dispose(Boolean) 的方法介绍

1)作用:关闭基础流,释放 StreamReader 使用的未托管资源,同时还可以根据需要释放托管资源。
2)语法:

protected override void Dispose (bool disposing);

4: StreamReader.Read 的方法介绍

1)作用:读取输入流中的下一个字符或下一组字符。
2)语法:

public override int Read ();
public override int Read (char[] buffer, int index, int count);
重载重载 说明
Read()读取输入流中的下一个字符并使该字符位置提升一个字符。
Read(Char[], Int32, Int32)从指定的索引位置开始将来自当前流的指定的最多字符读到缓冲区。

5: StreamReader.ReadLine 方法介绍

1)作用:从当前流中读取一行字符并将数据作为字符串返回。
2)语法:

public override string ReadLine ();

3)使用举例

string str_rd = @"J:\FFOutput\Version.txt";

//使用streamReader来读取一个文本文件
using (StreamReader StrRd = new StreamReader(str_rd, Encoding.UTF8))
{
		while (!StrRd.EndOfStream)//文件流,结束前,一直读取一行
		{
				Console.WriteLine(StrRd.ReadLine());
		}
}

4)运行结果

美丽珠海

6: StreamReader.ReadToEnd 方法介绍

1)作用:读取来自流的当前位置,到结尾的所有字符。
2)语法:

public override string ReadToEnd ();

3)使用举例:

string path = @"J:\FFOutput\Version.txt";

try
{
    if (File.Exists(path))
    {
        File.Delete(path);
    }
    using (StreamWriter sw = new StreamWriter(path))
    {
        sw.WriteLine("1)专心做好一件事");
        sw.WriteLine("2)知识消化系统");
        sw.WriteLine("3)应用想法无限");
        sw.WriteLine("4)底层逻辑简单");
    }
    using (StreamReader sr = new StreamReader(path))
    {
        // 这允许您执行一次读取操作.
        Console.WriteLine(sr.ReadToEnd());
    }
}

catch (Exception e)
{
    Console.WriteLine("操作有误: {0}", e.ToString());
}

4)运行结果:

1)专心做好一件事
2)知识消化系统
3)应用想法无限
4)底层逻辑简单

相关文章:

  • 基于图搜索的规划算法之 A* 家族(九):Hybrid A* 算法
  • 2022年Webpack 5初学者完整指南
  • 【MATLAB教程案例22】基于MATLAB图像去噪算法仿真——中值滤波、高斯滤波以及频域滤波等
  • 浙江大学软件学院2022保研经历分享
  • 表的自然连接(数据结构链表链接)
  • 在Vue脚手架实现登录页面及跳转
  • 新旧电脑间文件互传(通过网络)
  • Python3,仅仅2段代码,就实现项目代码自动上传及部署,再也不需要Jenkins了。
  • 贪心c++(结合LeetCode例题)
  • MATLAB-多项式曲线回归拟合
  • 第五章-Python数据处理工具--Pandas
  • Redis02-分布式session、缓存查询及缓存问题的解决
  • JavaWeb——AjaxJson
  • Spring-Cloud-Feign-03
  • 【深入Javascript闭包】
  • 《Java编程思想》读书笔记-对象导论
  • 《剑指offer》分解让复杂问题更简单
  • CentOS7简单部署NFS
  • CSS 提示工具(Tooltip)
  • gops —— Go 程序诊断分析工具
  • Js基础知识(四) - js运行原理与机制
  • Theano - 导数
  • 安卓应用性能调试和优化经验分享
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 对象管理器(defineProperty)学习笔记
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 判断客户端类型,Android,iOS,PC
  • 前端_面试
  • 前端相关框架总和
  • 我建了一个叫Hello World的项目
  •  一套莫尔斯电报听写、翻译系统
  • 再次简单明了总结flex布局,一看就懂...
  • ​secrets --- 生成管理密码的安全随机数​
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • # Panda3d 碰撞检测系统介绍
  • #define、const、typedef的差别
  • (1)STL算法之遍历容器
  • (2022 CVPR) Unbiased Teacher v2
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .NET大文件上传知识整理
  • .NET命名规范和开发约定
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @Transient注解
  • @取消转义
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [Android]How to use FFmpeg to decode Android f...
  • [Android]通过PhoneLookup读取所有电话号码
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计