File类是静态类使用时不需要创建对象
1、File类操作文件常用方法
File.Exit()判存
File.Copy(文件名字,目标文件名字)复制
File.Move(文件名字,目标文件名字)移动
File.Delete(文件名字)删除
2、 File操作文本文件(读和写文本文件中的数据)
File.ReadAllLines(路径, Encoding.Default); //返回字符串数组,(此方法有多种重载参看源码)
//多用于对文本文件每一行进行操作
File.ReadAllText(路径,Encoding.Default); //返回字符串
File.WriteAllLines(路径,要写入的字符串数组,Encoding.Default);//无返回值
File.WriteAllText(路径,要写入的字符串,Encoding.Default); //无返回值
3、File类操作多媒体文件或文本文件(以字节形式进行读写)
byte[] buffer = File.ReadAllBytes(文件名含路径); //返回的是字节数组(存的是字节编码)读取文件为字节数组
string str = Encoding.Default.GetString(要解码的字节数组); //返回类型为string常用于读
byte[] buffer =Encoding.Default.GetBytes(str字符串); //返回字节数组,将要解码的字符串解码成字节数组用于写入
File.WriteAllBytes(写入的文件名含路径,buffer字节数组); //以字节数组的形式写入文件
4、源码代码中我们常用的方法
public static byte[] ReadAllBytes(string path);
public static string[] ReadAllLines(string path);
public static string[] ReadAllLines(string path, Encoding encoding);
public static string ReadAllText(string path);
public static string ReadAllText(string path, Encoding encoding);
public static void WriteAllBytes(string path, byte[] bytes);
public static void WriteAllBytes(string path, byte[] bytes);
public static void WriteAllLines(string path, IEnumerable<string> contents);
public static void WriteAllLines(string path, string[] contents);
public static void WriteAllLines(string path, IEnumerable<string> contents, Encoding encoding);
public static void WriteAllLines(string path, string[] contents, Encoding encoding);
public static void WriteAllText(string path, string contents);
public static void WriteAllText(string path, string contents, Encoding encoding);以上是File类中常用的最基本的方法,其他的方法我们可以参照源代码进行更深入的学习
namespace file类操作文件 { class Program { static void Main(string[] args) { //创建文件txt,jpg都可以 File.Create(@"C:\Users\fighting man\Desktop\File的测试\new2.txt"); Console.WriteLine("创建成功"); Console.ReadKey(); //删除文件彻底删除再回收站中也没有 File.Delete(@"C:\Users\fighting man\Desktop\File的测试\new.txt"); Console.WriteLine("删除成功"); Console.ReadKey(); //判存 if (!File.Exists(@"C:\Users\fighting man\Desktop\File的测试\new3.txt")) { File.Create(@"C:\Users\fighting man\Desktop\File的测试\new3.txt"); } else { Console.WriteLine("已经存在这个文件了"); } //复制 文件名字 目标文件名 string path = @"C:\Users\fighting man\Desktop\File的测试\新建文件夹\code.txt"; File.Copy(path, @"C:\Users\fighting man\Desktop\File的测试\code4.txt"); Console.WriteLine("复制成功"); //剪切 文件名字 目标文件名 string path1 = @" C:\Users\fighting man\Desktop\File的测试\新建文件夹\code.txt"; File.Move(path1, @"C:\Users\fighting man\Desktop\File的测试\newCode.txt"); Console.WriteLine("剪切成功"); Console.ReadKey(); //读取文本文件(以字符形式读取) //读取数据以行的形式进行读取 string[] str = File.ReadAllLines(@"C:\Users\fighting man\Desktop\File操作文件数据\utf-8的文件.txt", Encoding.Default);//返回字符串数组 foreach (string s in str) { Console.WriteLine(s); } Console.ReadKey(); //读取数据读全部内容 string str1 = File.ReadAllText(@"C:\Users\fighting man\Desktop\File操作文件数据\utf-8的文件.txt", Encoding.Default);//返回字符串 Console.WriteLine(str); Console.ReadKey(); //以行的形式进行写入 File.WriteAllLines(@"C:\Users\fighting man\Desktop\File操作文件数据\WriteAllLines写入测试.txt",new string[]{"张三","李四"},Encoding.Default); //以字符串的形式进行写入 File.WriteAllText(@"C:\Users\fighting man\Desktop\File操作文件数据\WriteAllText.txt", "山不在高有仙则名,水不在深有龙则灵", Encoding.Default); Console.WriteLine("ok"); Console.ReadKey(); //File读取文本文件或多媒体文件(以字节的形式) byte[] buffer = File.ReadAllBytes(@"C:\Users\fighting man\Desktop\File操作文件数据\wnike.txt");//返回字节数组 Console.WriteLine("读取结束"); Console.ReadKey(); #region 单步看编码 char c = 'a'; char b = '1'; Console.ReadKey(); #endregion //编码问题 byte[] buffer2 = File.ReadAllBytes(@"C:\Users\fighting man\Desktop\File操作文件数据\wnike.txt");//返回字节数组 #region 解码不出来 for (int i = 0; i < buffer2.Length; i++) { Console.WriteLine(buffer[i].ToString()); } #endregion //此方法可以解码 string str2 = Encoding.Default.GetString(buffer2);//返回字符串 //97 -->ToString()-->97 //97-->GetString()-->A byte[] buffer3 = File.ReadAllBytes(@"C:\Users\fighting man\Desktop\File操作文件数据\utf-8的文件.txt"); string str3 = Encoding.UTF8.GetString(buffer3); Console.WriteLine(str2); Console.ReadKey(); //写入数据 string str4 = "艾弗森无敌"; byte[] buffer4 = Encoding.Default.GetBytes(str4); File.WriteAllBytes(@"C:\Users\fighting man\Desktop\File操作文件数据\写入测试.txt", buffer4);//返回为空 Console.WriteLine("写入成功"); Console.ReadKey(); } } }