File类和FileStream类

黑马程序员--鄢振东

File是一个文件类,可以操作任意文件,
FileStream 也是一个操作文件的类,同样也是一个文件类,
但是2者的区别就是一个可以操作大文件(FileStream)一个只能操作小文件(File)

File中的几个方法:
create(): 用于创建一个文件,其还有一个重载的方法
delete(path):直接删除一个文件。
File.Copy(@"C:\Users\Administrator\Desktop\第一组--\1.bmp", @"C:\Users\Administrator\Desktop\第一组--\新建文件夹\2.jpg", true);
第3个值是来决定是否允许文件名 重名的一个 bool 类型的值,如果为true 那么允许文件名重名,然后会自动替换掉以前的文件,如果为false,那么会抛异常。
File.Move(@"C:\Users\Administrator\Desktop\第一组--\3.bmp", @"C:\Users\Administrator\Desktop\第一组--\新建文件夹\3.jpg");
将一个文件移动到另一个地方,并变成另外一个文件名,源文件会消失。

File中还有一些读取文件和写入文件的方法:
读取文件:
readallbytes 是一个先打开文件,按照指定编码读取完文件后,将读到的文件放在一个字节 的数组里面,然后关闭文件。
readallLines()是一个先打开文件,然后按照指定编码读取完文件后,将读到的文件放到一个字符串数组里面,数组里面的每个元素 是 读到的一行,然后关闭文件。
eadalltext () 是一个县打开文件,然后按照指定编码方式读完文件后,将读到的文件放到一个字符串里面,然后关闭文件。
写文件:
writeallbytes(path ,字符数组) 将一个字节 数组按照指定的编码方式,写入指定路径的文件里去。
writealllines( path,字符串数组,编码方式) 将一个字符串 数组按照指定的编码方式,写入指定的路径的文件里去。
writealltext(path,字符串,编码方式) 将一个字符串 按照指定的编码方式,写入指定的路径的文件里去。

File类中我们对文件的读取都是 用 一下子就全部读取够来的方法来读的,这样非常不好,当文件太大之后,就会非常占用内存出现卡机的现象。
但是文件流FileStream就不会出现这个现象,因为他是将一个文件分成很多小文件了之后来读的。这样做的话,效果就好多了。

插入一点::就是在文件的操作过程中,我们经常还会用到几个类:第一就是Path类,第二是Directory这个类。

FileStream类:

一般来说,.NetFrameWork 这个框架的垃圾回收器 会将不用的资源自动释放,但是FileStream 是其中的一个特例,他就是那种不会自动释放的一个类。所以我们一般使用的时候
使用 using(){}

第一个读取文件:
using(FileStream fsread=new FileStream(path,FileMode.OpenOrCreate,FileAccess.Read))
{
byte[] buffer=new byte[1024*1024*3];
int i=fsread.Read(buffer,0,buffer.length);
string str=Encoding.Defalut.GetStrings(buffer,0,i);
//str就是得到的字符串。
}
第二个是写入文件:
using(FileStream fsWrite=new FileStream(path,FileMode.OpenOrCreate,FileAccess.Write))
{
string str="今天天气好晴朗,处处好风光!";
byte[] buffer=Encoding.Default.GetBytes(str);
fsWrite.Write(buffer,0,buffer.length);
}
就ok啦。

posted @ 2014-07-11 22:19  经历  阅读(622)  评论(0编辑  收藏  举报