欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

FileStream常用的属性与方法总结

程序员文章站 2024-02-14 23:50:58
对流进行操作时要引用 using system.io; 命名空间 filestream常用的属性和方法: 属性: canread 判断当前流是否支持读取,返回boo...

对流进行操作时要引用 using system.io; 命名空间

filestream常用的属性和方法:

属性:

canread 判断当前流是否支持读取,返回bool值,true表示可以读取

canwrite 判断当前流是否支持写入,返回bool值,true表示可以写入

方法:

read() 从流中读取数据,返回字节数组

write() 将字节块(字节数组)写入该流

seek() 设置文件读取或写入的起始位置

flush() 清除该流缓冲区,使得所有缓冲的数据都被写入到文件中

close() 关闭当前流并释放与之相关联的所有系统资源

文件的访问方式:(fileaccess)

包括三个枚举:

fileaccess.read(对文件读访问)

fileaccess.write(对文件进行写操作)

fileaccess.readwrite(对文件读或写操作)

文件打开模式:(filemode)包括6个枚举

filemode.append 打开现有文件准备向文件追加数据,只能同fileaccess.write一起使用

filemode.create 指示操作系统应创建新文件,如果文件已经存在,它将被覆盖

filemode.createnew 指示操作系统应创建新文件,如果文件已经存在,将引发异常

filemode.open 指示操作系统应打开现有文件,打开的能力取决于fileaccess所指定的值

filemode.openorcreate 指示操作系统应打开文件,如果文件不存在则创建新文件

filemode.truncate 指示操作系统应打开现有文件,并且清空文件内容

文件共享方式:(fileshare)

fileshare方式是为了避免几个程序同时访问同一个文件会造成异常的情况。

文件共享方式包括四个:

fileshare.none 谢绝共享当前文件

fileshare.read 充许别的程序读取当前文件

fileshare.write 充许别的程序写当前文件

fileshare.readwrite 充许别的程序读写当前文件

使用filestream类创建文件流对象:

filestream(string 文件路径,filemode 文件打开模式)

filestream(string 文件路径,filemode 文件打开模式,fileaccess 文件访问方式)

filestream(string 文件路径,filemode 文件打开模式,fileaccess 文件访问方式,fileshare 文件共享方式)

例:

//在c盘创建a.txt文件,使用fs流对象对文件进行操作,fs的工作模式是新建(filemode.create)

filestream fs=new filestream(@"c:\a.txt",filemode.create);

//在c盘创建a.txt文件,使用fs流对象对文件进行操作,fs工作模式是新建(filemode.create)文件的访问模式是写入(fileaccess.write)

filestream fs=new filestream(@"c:\a.txt",filemode.create,fileaccess.write);

//在c盘创建a.txt文件,使用fs流对象对文件进行操作,fs工作模式是新建(filemode.create)文件的访问模式是写入(fileaccess.write)文件的共享模式是谢绝共享(fileshare.none)

filestream fs=new filestream(@"c:\a.txt",filemode.create,fileaccess.write,fileshare.none);

使用file类来创建对象:(常用)

自定义打开文件的方式:file.open(string,filemode);

打开文件进行读取: file.openread(string);

打开文件进行写入: file.openwrite(string);

示例如下:

//在c盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以行文件内容追加操作filemode.append

filestream fs=file.open(@"c:\123.txt",filemode.append);

//在c盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以进行读文件file.openread()

filestream fs=file.openread(@"c:\123.txt");

//在c盘新建123.txt文件,使用流对象fs对文件进行操作,fs可以进行写操作file.openwrite()

filestream fs=file.openwrite(@"c:\123.txt");

使用file例:

对文件进行读操作:

//新建fs流对象对象产生的路径是textbox1.text的值,文件的模式是filemode.openorcreate(可读可写)

using (filestream fs = file.open(textbox1.text, filemode.openorcreate))
{

//新建字节型数组,数组的长度是fs文件对象的长度(后面用于存放文件)
byte[] bt=new byte[fs.length];

//通过fs对象的read方法bt得到了fs对象流中的内容
fs.read(bt,0,bt.length);

//关闭fs流对象
fs.close();

//将bt字节型数组中的数据由encoding.default.getstring(bt)方法取出,交给textbox2.text
textbox2.text = system.text.encoding.default.getstring(bt);
}

对文件进行写入操作:

//新建fs流对象,对象操作的文件路径在textbox1.text中,fs的操作模式是filemode.create

using (filestream fs = file.open(textbox1.text, filemode.create))
{

//新建字节型数组bt对象,bt对象得到了textbox2.text的encoding的值
byte[] bt = system.text.encoding.default.getbytes(textbox2.text);

//将bt字节型数组对象的值写入到fs流对象中(文件)
fs.write(bt,0,bt.length);

//关闭流对象
fs.close();
}

注:

对文件的读写操多不管代码有多少,无非就是下面的三步:

1.创建文件读写流对象

2.对文件进行读写

3.关闭文件流