FileStream说明
Posted huang34
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FileStream说明相关的知识,希望对你有一定的参考价值。
FileStream(String, FileMode) FileStream(String path, FileMode)
文件打开模式:(FileMode)包括6个枚举
Append:追加 FileAccess.Write
Create:存在则创建文件,不存在则覆盖 FileAccess.Write
CreateNew:创建,如文件存在则引发异常 FileAccess.Write
Open:应打开现有文件 如不存在文件则引发异常 FileAccess.Write,FileAccess.Read,FileAcess.ReadWrite
OpenOrCreate:应打开一个文件并创建一个新的文件 FileAccess.Write,FileAccess.Read,FileAcess.ReadWrite
Truncate: 应打开现有文件。当打开文件时同时清空文件内容 最后才能添加新内容FileAccess.Write
成 员 |
文 件 存 在 |
文件不存在 |
Append |
打开文件,流指向文件的末尾,只能与枚举FileAccess.Write联合使用 |
创建一个新文件。只能与枚举FileAccess.Write联合使用 |
Create |
删除该文件,然后创建新文件 |
创建新文件 |
CreateNew |
抛出异常 |
创建新文件 |
Open |
打开现有的文件,流指向文件的开头 |
抛出异常 |
OpenOrCreate |
打开文件,流指向文件的开头 |
创建新文件 |
Truncate |
打开现有文件,清除其内容。流指向文件的开头,保留文件的初始创建日期 |
抛出异常 |
文件的访问方式:(FileAccess)
包括三个枚举:
FileAccess.Read(对文件读访问)
FileAccess.Write(对文件进行写操作)
FileAccess.ReadWrite(对文件读或写操作)
文件共享方式:(FileShare)
FileShare方式是为了避免几个程序同时访问同一个文件会造成异常的情况。
文件共享方式包括四个:
FileShare.None 谢绝共享当前文件
FileShare.Read 充许别的程序读取当前文件
FileShare.Write 充许别的程序写当前文件
FileShare.ReadWrite 充许别的程序读写当前文件
FileStream常用的属性和方法:
属性:
CanRead 判断当前流是否支持读取,返回bool值,True表示可以读取
CanWrite 判断当前流是否支持写入,返回bool值,True表示可以写入
方法:
Read() 从流中读取数据,返回字节数组
Write() 将字节块(字节数组)写入该流
Seek() 设置文件读取或写入的起始位置
Flush() 清除该流缓冲区,使得所有缓冲的数据都被写入到文件中
Close() 关闭当前流并释放与之相关联的所有系统资源
abstract int Read(byte[] buffer, int offset, int count)
这个方法包含了3个关键的参数:缓冲字节数组,位移偏量和读取字节个数,每次读取一个字节后会返回一个缓冲区中的总字节数
第一个参数:这个数组相当于一个空盒子,Read()方法每次读取流中的一个字节将其放进这个空盒子中。(全部读完后便可使用buffer字节数组了)
第二个参数:表示位移偏量,告诉我们从流中哪个位置(偏移量)开始读取。
最后一个参数:就是读取多少字节数。
原文件也会逐渐减少了int count。
实例:
以上是关于FileStream说明的主要内容,如果未能解决你的问题,请参考以下文章
BinaryFormatter.Serialize() 是不是在 FileStream.Flush() 和 FileStream.Close() 之前完成?