C#中对文件的操作

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方法产生一个已编码的字节数组byteData
eEncoder.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值