File类的简单入门

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);//无返回值

扫描二维码关注公众号,回复: 1633668 查看本文章

 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();



            
        }
    }
}

  
 


猜你喜欢

转载自blog.csdn.net/boy_of_god/article/details/80616525