FileStream常用的属性与方法总结
对流进行操作时要引用 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.关闭文件流
上一篇: Java集合(15)——PriorityQueue源码解析
下一篇: 合并N个有序链表与FQ公平调度