File类是一个静态类,因此,不能够显式地创建一个对象实例,使用类名加静态方法名就可以直接进行调用,这比较方便和快捷,File类通常用于一些不叫典型的文件处理操作,例如:文件的复制,移动,重命名,创建,打开,追加和删除,File类还可以用于获取和设置文件袋 属性及创建,写入和访问的日期时间。
File类提供了很多的方法,下面我把我知道的方法给大家列出来:
文件的创建和打开:
使用指定路径中创建文件,并返回一个文件流
public static FileStream Create(string Path)
打开指定路径中的文本文件,返回一个StreateWrite
public static StreateWrite CreateText(string path)
打开指定路径上的文件,返回一个文件流
public static FileSrtreate Open(string path ,FileMode mode)
打开UTF-8编码的文本文件进行读取。
public static StreamReader OpenText(string path)
以只读模式打开一个指定文件 ,并返回一个文件流
public static FileStreate OpenReader(String Path)
以只写模式打开一个指定文件,返回一个文件流
public static FileStreate OpenWrite(string path)
以上的创建和打开方法都有一个文件流返回值
// 定义一个常量FilePath
const string filePath = @"C:\FileCreateOpenDemo.txt";
using (FileStream fs = File.Create(filePath ))//这里使用Using在语句执行后就释放资源
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw.WriteLine("这是用Create创建文件的方法");
sw.Flush();
}
}
//判断文件是否存在,如果存在就删除此文件
if (File.Exists(filePath))
{
File.Delete(filePath);
}
//使用File、CreateTxte方法创建一个,返回StreamWrite对象
using (StreamWriter sw = File.CreateText(filePath))
{
sw.WriteLine("这是用CreateTxte方法创建的文档");
sw.Flush();//将文件写入缓冲区
}
Console.WriteLine("使用OPen()打开文件");
// 使用File.Open 方法返回一个FileStream对象
using (FileStream fs = File.Open(filePath, FileMode.Open)) //FileMode指定系统打开的方式
{
//使用StreamReader 的重载构造函数将FileStream转换为StreamReader
using (StreamReader sr = new StreamReader(fs))
{
Console.WriteLine(sr.ReadToEnd());//ReadToEnd 从头读到尾
}
}
Console.WriteLine("使用OpenReader方法打开文件");
using (FileStream fs1 = File.OpenRead(filePath))
{
using (StreamReader sr = new StreamReader(fs1))
{
Console.WriteLine(sr.ReadToEnd());
}
}
Console.WriteLine("使用OpenWrite方法打开文件");
// File.OpenWrit以只读写的方式打开文件,并返回一个FileStream对象
using (FileStream fs = File.OpenWrite(filePath))
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw.WriteLine("zhe shi yong OpenWrite fang fa xie ru d wen jian ");
sw.Flush();
Console.WriteLine("写入成功");
}
}
Console.WriteLine("使用OpenText方法打开文本文件");
using (FileStream fs = File.OpenText(filePath))
{
using (StreamReader sr = new StreamReader(filePath))
{
Console.WriteLine(sr.ReadToEnd());
}
}
}