文件流
前言
今天又继续学的关于文件的操作方法,不过学的是文件流,感觉这个真的得到需要超多练习,看着会了,实在依然懵逼!!!
提示:以下是本篇文章正文内容,下面案例可供参考
一、FileStream
FileStream和File的区别
先来说说这两个的区别吧,其实昨天的文章有稍微说过,file是用于操作小文件的,那今天这文件流FileStream那必定就是操作大文件的。
有点类似与将满水的水缸的水装至空水缸的方法:
一种是扛起满水的水缸,将水全部到至空水缸中(File)
另一种是用一个水瓢,一勺一勺的拿出水,到至空水缸中(FileStream)
FileStream
但是通过今天的学习我感觉这个文件流是真的不适合对文本文件进行操作,感觉不如直接用StreamReader和StreamWriter来操作
各位先看它对文本文件的操作吧
//读取操作
//1.创建一个FileStream对象
//传入地址,要做的操作,读取或写入
FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read);
//因为其是一部分一部分读取,所以要定义字节数组用于存储读到的数据
//定义每次读取的长度5M
//长度有上限
byte[] buffer = new byte[1024 * 1024 * 5];
//存储的字节数组,开始读取的地方,每次读取长度
//返回int类型是因为,可能读取的长度比实际剩余长度大
//返回实际读取长度
int r = fsRead.Read(buffer, 0, buffer.Length);
//将字节数组中每个元素按照指定格式进行解码
//解码为字符串
//防止读取的远远超过实际长度,设置开始解码位置,和终止解码位置
//但是实际读取依然是5M,只是只解码了所要的区域
string s = Encoding.Default.GetString(buffer