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#流概述的更多相关文章

  1. Java——IO类 字符流概述

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  2. 36、IO流概述和分类

    IO流概述 IO流的主要作用是用来处理设备之间的数据传输,例如可以使用IO流将一台电脑硬盘里面的照片传输到另一台电脑上面,即将照片转换为字节,然后将字节传到另一台电脑上面,另一台电脑接收后,可以将这些 ...

  3. 第30天学习打卡(异常概述 IO流概述)

    异常概述 即非正常情况,通俗的说,异常就是程序出现的错误 异常的分类(Throwable) 异常(Exception) 合理的应用程序可能需要捕获的问题 举例:NullPointerException ...

  4. Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律

    第一讲     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...

  5. java 21 - 1 IO流中的字符流概述

    字节流通过读取一个byte数组的方式可以读取中文的,但是有可能出现小问题,所以,读取中文最好是用字符流. 字符流: 字符流=字节流+编码表. 编码表: 由字符及其对应的数值组成的一张表 编码表介绍: ...

  6. java 20 - 4 IO流概述和一个简单例子解析

    IO流的分类:  流向: 输入流 读取数据  输出流 写出数据 数据类型:  字节流  字节输入流 读取数据 InputStream  字节输出流 写出数据 OutputStream  字符流  字符 ...

  7. Java之IO流概述和File基本操作

    IO流图解 IO(in / out)流的分类 流向: 输入流  读取数据 输出流  写出数据 数据类型: 字节流 一个字节占8位, 以一个字节为单位读数据 八大数据类型所占字节数: byte(1), ...

  8. Android-Java-IO流概述

    IO:I:Input输入 O:Output输出 IO流: IO:用于处理设备上数据的一种技术,处理设备上数据包括(Input / Output) ,设备指的是:内存,硬盘,U盘,打印机,等等..... ...

  9. java基础之io流总结一:io流概述

    IO流概念: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.io流是实现输入和输出的基础,可以方便的实现数据的输入和输出操作. IO流的分类: 根据处理数据类型的不同分为:字符流 ...

随机推荐

  1. 用JavaScript将数字转换为大写金额(收藏)

    (非原创, 来自网络,仅作收藏) var digitUppercase = function(n) { var fraction = ['角', '分']; var digit = [ '零', '壹 ...

  2. Spring Boot学习笔记(五)整合mybatis

    pom文件里添加依赖 <!-- 数据库需要的依赖 --> <dependency> <groupId>org.mybatis.spring.boot</gro ...

  3. 浅谈 Linux 下的 SSH1, SSH2

    SSH:Secure Shell .是一种安全协议. 常见的应用场景是远程控制台登陆. SSH1免费,SSH2收费.  其实 SSH 并不只是在 Linux 和 Unix  下使用,他们同样在 Win ...

  4. react入门参考资料

    ReactJS简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做出 ...

  5. GIT:如何管理本机的多个ssh密钥(多个远程仓库账号)

    最近在学习git,首先推荐一个个人认为很不错的git教程,学习后,从git新手变成了git入门了,仍需继续努力. 廖老师的git学习教程(其他git基础知识点,本篇博客就不做介绍了,自己看教程学习吧, ...

  6. Spring MVC基本配置和实践(一)

    一.Spring MVC介绍 1. Spring MVC是什么? The Spring Web MVC framework和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从S ...

  7. Spring Cloud中,Eureka常见问题总结

    Spring Cloud中,Eureka常见问题总结. 1 eureka.environment: 指定环境 参考文档: 1 eureka.datacenter: 指定数据中心 参考文档: 使用配置项 ...

  8. notepad 操作总结

    1.竖向选择 先把鼠标光标放在起始位置,然后同时按 Alt+Ctrl 或Alt+shift键,然后移动鼠标选取内容. Word中只能用Alt+Shift .

  9. Intel酷睿前世今生(一)

    Intel酷睿系列自诞生起就树立了桌面CPU霸主的地位,酷睿i系列更是无人能敌.它是Intel阻击AMD多核构架的救赎主,也是AMD复兴梦想的收割者.而Intel酷睿系列已经经历几代了,不知还有多少看 ...

  10. 随手记C#资料

    1.where T: new()where后的称为泛型约束,这里约束泛型参数T必须具有无参的构造函数 2.判断路径是本地路径还是网址 private static bool IsLocalPath(s ...