Path类
静态类
操作文件路径
Path.GetFileName(); //获取文件名包含拓展名
Path.GetFileNameWithoutExtension(); //获取文件名不包含拓展名
Path.GetExtension(); //获取拓展名
Path.GetDirectoryName(); //获取所在文件夹的名字
File类
静态类
一次读完,用于小数据处理
File.Exists(); //判断文件是否存在
File.Create(); //创建文件(写入文件后缀)
File.Delete(); //删除文件(永久删除)
File.Copy(); //赋值文件
File.Move(); //移动文件
文件读取(注意编码参数)
File.ReadAllLines(); //读取所有行,返回string[ ]
File.ReadAllText(); //读取整个文本,返回string
File.ReadAllBytes(); //读取文件,返回byte[ ]
文件写入(注意编码参数)
File.WriteAllLines();//写入string[ ]
File.WriteAllText(); //写入string
File.WriteAllBytes(); //写入byte[ ]
File.AppendAllText();//追加string
FileStream类
指定每次读写大小,用于大文件读写
操作字节(即可操作任意类型文件)
//每次指定最大读取字节数,循环读取,直至读完
using(FileStream file=new FileStream("path",FileMode.OPen,FileAccess.Read))//自动释放流
{
byte[] buffer = new byte[1024*5];//每次读取内容量(字节)
int n = file.Read(buffer,0,buffer.Length);//中间介质,偏移量,读取字节数,返回实际读取字节数
string s = Encoding.Default.GetString(buffer,0,n);
}
//会覆盖指定位置开始的内容,但不会更改其他内容
using(FileStream file=new FileStream("path",FileMode.OpenOrCreate,FileAccess.Write))
{
string s = "写入数据";
byte[] buffer = Encoding.Default.GetBytes(s);
file.Write(buffer,0,buffer.Length);//写入内容,偏移量,写入长度
}
StreamReader和StreamWriter类
操作字符(文本文件)
读取文本
using(StreamReader reader = new StreamReader("path"))//注意编码参数的选择
{
while(!reader.EndOfStream)
Consol.WriteLine(reader.ReadLine());
}
写入文本
using(StreamWriter writer = new StreamWriter("path",true))//追加还是覆盖
{
writer.Write("新信息");
}
绝对路径加“@”,相对路径不加。建议使用相对路径
注意编码的正确转换(Encoding),编码解码的一致