C#中对文件的操作

来源:互联网 发布:一元云购v8源码 编辑:程序博客网 时间:2024/06/06 04:42

1、System.IO中的Directory、File、Path类都是静态类,其中Directory、File和DirectoryInfo、FileInfo是相对应的,加Info的是普通的类,在使用的时候需要实例化,如果只执行单一的调用,最好用静态类,如果进行多个处理,则最好实例化一个对象来使用。

FileInfo fi = new FileInfo("Data.txt");

2、Directory中有EnumerateDirectories()和EnumerateFiles()方法返回一个IEnumerable接口的集合,这个方法在目录或者文件很多的情况下的效率比较高。
3、可以用Directory.GetCurrentDirectory()来获取当前目录
4、写文件可以用FileStream类或者StreamWriter类,FileStream类可以实现在文件的任意位置中进行写,但是StreamWriter类不行;
①文件流的创建

FileStream fs =  File.OpenRead("Data.txt");FileStream fs  = aFileInfo.OpenRead();FileStream fs  new FileStream("Data.txt",FileMode.<mode>,FileAccess.<access>);//mode表示打开的时候如果不存在,或者已存在的情况下怎么办查看枚举类型FileMode的定义//access表示只读、只写、还是读写查看枚举类型FileAccess的定义

/**************注意用FileStream读写文件都需要指定编码的方式*******************/
5、用FileStream读文件的方法:
用FileStream实际上执行的是:

Decoder dec = Encoding.UTF8.GetDecoder();dec.GetChars(byteData,0,byteData.length,charData,0);//charData就是读得的字符数组:byte[] byteData = new byte[200];char[] charData = new char[200];//其中byteData是字节数组,通过FileStream或得FileStream fs = new FileStream("Data.txt",FileMode.Open);//下一步就是设置从什么地方开始读fs.Seek(100,SeekOrigin.Begin);//表示从开始位置往后的100个字符开始读取fs.Read(byteData,0,200);//将上一步设置的位置开始读取200个字符

6、用FileStream写文件

//1、首先用FileStream创建一个文件流FileStream fs = new FileStream("Data.txt",FileMode.Create);//2、用Encoder类的GetBytes方法产生一个已编码的字节数组byteDataeEncoder.GetBytes(charData,0,charData.Length,byteData,0.true);//3、设置从什么地方开始写fs.Seek(0,SeekOrigin.Begin);//4、开始写fs.Write(byteData,0,byteData.Length);

7、使用StreamWirter来进行写(很简单)
//注意,默认sw是具有读写权限的
//该方法不支持任意位置进行写

//1、创建一个StreamWirter对象StreamWirter sw = new StreamWirter("Data.txt",true);//或者StreamWirter sw = new StreamWirter(new FileStream("Data.txt"),FileMode.CreateNew);//2、开始写sw.WriteLine("Hello");//关闭流se.Close();

8、使用StreamReader进行文件的读
//注意:当文件过大时,最好不要用这中方法读取所有内容,他会读取到内存中,更好的方法就是用FileStream的方法来读取、

StreamWirter sw = new StreamWirter(new FileStream("Data.txt"),FileMode.Open);string str = sw.ReadToEnd();或者//string str = sw.ReadLine;charCode = sw.Read();
0 0
原创粉丝点击