c#中的文件管理类File类
File类下面有好多用来操作文件的方法
从File类的从元数据来看,其属于IO的命名空间底下,其是一个静态类,故其下面的都是一些静态成员,我们不能实例化File类的对象,当我们要调用其下面的成员时,只需通过类名File来调用即可。
下面我来举几个例子:
1.在指定路径创建文件
static void Main(string[] args) { File.Create(@"D:\桌面\demo.txt");//在指定路径创建文件 }
创建完成:
2.在指定文件写入文本内容,多次执行会覆盖
static void Main(string[] args) { File.WriteAllText(@"D:\桌面\demo.txt", "勇士总冠军!!!");//在指定文件写入文本内容 }
写入完成:
3.通过字节写入
static void Main(string[] args) { byte[] bytes = Encoding.Default.GetBytes("库里mvp!!!");//使用.net默认的编码 File.WriteAllBytes(@"D:\桌面\demo.txt", bytes); }
4.追加内容,而不是覆盖内容
static void Main(string[] args) { File.AppendAllText(@"D:\桌面\demo.txt", "2022"); }
4.编码和解码
编码:将字符串以怎样的形式保存为二进制
乱码:保存这个文件所采用的编码与打开这个文件所采用的编码格式不同
我们在保存文件时,会出现如下页面:
这就是选择编码的方式。
下面用代码来说明:
static void Main(string[] args) { byte[] buffer = File.ReadAllBytes(@"D:\桌面\demo.txt"); string s=Encoding.UTF8.GetString(buffer); Console.WriteLine(s); }
这里我们选择和编码方式相同的UTF8,运行可得出正确的文本
当将其改成UTF32时,就会出现以下的乱码格式
static void Main(string[] args) { byte[] buffer = File.ReadAllBytes(@"D:\桌面\demo.txt"); string s=Encoding.UTF32.GetString(buffer); Console.WriteLine(s); }