C#流概述
C#流概述
.NET Framework使用“流”来支持读取或写入文件。可以将流视为一组连续的一维数据,包含开头和结尾,并且其中的游标指示了流的当前位置。
1、流操作
流中包含的数据可能来自内存、文件或TCP/IP套接字。流包含以下几种可以用于自身的基本操作:
l 读取:将数据从流传输到数据结构(字符串或字节数据)中。
l 写入:将数据从数据源传输到流中。
l 查找:查询和修改在流中的位置。
2、流的类型
在.NET Framework中,“流”由Stream类表示,该类构成了所有其他流的抽象基类,不能直接实例化。但是必须使用它来实现某个I/O流类。
C#中由许多类型的流(14种派生类),但是在处理文件输入/输出时,最重要的类型为FileStream类,它提供了读取或写入文件的方式。可在处理文件输入/输出时使用的其它流主要包括:BufferedStream、CopytoStream、MemoryStream和NetworkStream等。
3、文件I/O流FileStream介绍
C#中,文件I/O流使用FileStream类实现,该类公开以文件为主的Stream,表示在磁盘或网络路径上指向文件的流。一个FileStream类的实例实际上表示一个磁盘文件,它通过Seek方法进行对文件的随机访问,也同时包含了流的标准输入、标准输出和标准错误等。FileStream默认对文件的打开方式是同步的,但是它同样很好地支持异步操作。
4、使用I/O流操作文本文件
使用I/O流操作文本文件时主要用到StreamWriter和StreamReader类。
l StreamWriter类:专门用来处理文本文件的类,可以方便地向文本文件写入字符串,同时它也负责重要的转换和处理向FileStream对象写入的工作。
l StreamReader类:专门用来读取文本文件的类。StreamReader可以从底层Stream对象创建StreamReader对象的实例,而且还能指定编码规范参数。创建StreamReader对象后,它提供了许多用于读取和浏览字符数据的方法。
5、使用I/O流操作二进制文件
使用I/O流操作二进制文件时主要用到BinaryWriter和BinaryReader类。
l BinaryWriter类:以二进制形式将基元类型写入流,并支持用特定的编码方式写入字符串。
l BinaryReader类:使用特定的编码将基元数据类型读作二进制值。
文件、流读取/写入器和流之间的操作关系图:

C#流概述的更多相关文章
- Java——IO类 字符流概述
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- 36、IO流概述和分类
IO流概述 IO流的主要作用是用来处理设备之间的数据传输,例如可以使用IO流将一台电脑硬盘里面的照片传输到另一台电脑上面,即将照片转换为字节,然后将字节传到另一台电脑上面,另一台电脑接收后,可以将这些 ...
- 第30天学习打卡(异常概述 IO流概述)
异常概述 即非正常情况,通俗的说,异常就是程序出现的错误 异常的分类(Throwable) 异常(Exception) 合理的应用程序可能需要捕获的问题 举例:NullPointerException ...
- Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律
第一讲 IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...
- java 21 - 1 IO流中的字符流概述
字节流通过读取一个byte数组的方式可以读取中文的,但是有可能出现小问题,所以,读取中文最好是用字符流. 字符流: 字符流=字节流+编码表. 编码表: 由字符及其对应的数值组成的一张表 编码表介绍: ...
- java 20 - 4 IO流概述和一个简单例子解析
IO流的分类: 流向: 输入流 读取数据 输出流 写出数据 数据类型: 字节流 字节输入流 读取数据 InputStream 字节输出流 写出数据 OutputStream 字符流 字符 ...
- Java之IO流概述和File基本操作
IO流图解 IO(in / out)流的分类 流向: 输入流 读取数据 输出流 写出数据 数据类型: 字节流 一个字节占8位, 以一个字节为单位读数据 八大数据类型所占字节数: byte(1), ...
- Android-Java-IO流概述
IO:I:Input输入 O:Output输出 IO流: IO:用于处理设备上数据的一种技术,处理设备上数据包括(Input / Output) ,设备指的是:内存,硬盘,U盘,打印机,等等..... ...
- java基础之io流总结一:io流概述
IO流概念: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.io流是实现输入和输出的基础,可以方便的实现数据的输入和输出操作. IO流的分类: 根据处理数据类型的不同分为:字符流 ...
随机推荐
- 撩课-Java每天5道面试题第21天
136.请解释Spring Bean的生命周期? 首先说一下Servlet的生命周期: 实例化, 初始init, 接收请求service, 销毁destroy: Spring上下文中的Bean生命周期 ...
- java语言的各种输入情况(ACM常用)
1.只输入一组数据: Scanner s=new Scanner(System.in); int a=s.nextInt(); int b=s.nextInt(); 2.输入有多组数据,没有说明输入几 ...
- CakePHP Configure::read('KHCITY') 数据配置读取
1. 2.引入 循环遍历 正确:
- html5 文档元素 header footer h1h2h4
文档元素: 用于在页面的大布局, 区分各个主体和概念. 让整体清晰, 元素有语义, 进一步代替div 具体划分图示: (参考) <hgroup> <section> <n ...
- C# 按部门拆分excel文件
按照所属部门不同将excel文件拆分成多个文件 string excel_path = @"G:\zhyue\backup\2018-08-01 读取腾讯邮箱接口-获取一个月内未接收到外部邮 ...
- win8、win10出现已禁用IEM时的处理办法
计算机管理--任务计划程序--任务计划程序库--Microsoft--Windows--TextServicesFramework--MsCtfMonitor--运行即可
- SparseArray代替HashMap
相信大家都明白,手机软件的开发不同于PC软件的开发,因为手机性能相对有限,内存也有限,所谓“寸土寸金”,可能稍有不慎,就会导致性能的明显降低.Android为了方便开发者,特意在android.uti ...
- 在 Azure 虚拟机中配置 Always On 可用性组(经典)
在开始之前,请先假设现在可以在 Azure Resource Manager 模型中完成此任务. 我们建议使用 Azure Resource Manager 模型来进行新的部署. 请参阅 Azure ...
- MySQL案例05:CPU负载优化
最近有套系统数据库周末总是告警,CPU使用率超过90%,开始由开发那边再跟进处理,我也就没参与,后来发现没进展就登录上去看了下,然后进行了部分优化,优化后效果还是比较明显的,具体优化过程本文会做详细的 ...
- 初始HTML
了解HTML 1.1 HTML的作用 HTML就是用来制作网页 1.2 什么是HTML HTML是英文HyperText Markup Language的首字母缩写,即超文本标 ...