zoukankan      html  css  js  c++  java
  • .net基础总复习(2)

    第二天

    文件操作常用类

    File

     

    //操作文件的

                //复制、剪切、创建、移除

     

     

                //File.Create(@"C:UsersBDSOFTDesktop ew.txt");

                //Console.WriteLine("创建成功");

     

                //File.Delete(@"a");

                //File.Copy(@"a", @"b");

                //File.Move(@"a",@"b");

                //剪切

     

                //Console.ReadKey();

     

                //使用FIle类来读取数据

                //一次性读取 大文件用Stream

     

     

     

                // byte[] buffer = File.ReadAllBytes(@"C:UsersBDSOFTDesktop1.txt");

     

                // string str = Encoding.Default.GetString(buffer, 0, buffer.Length);

     

                // Console.WriteLine(str);

     

                //编码:把字符串以怎样形式存储为二进制 ASCII GBK GB2312 UTF-8

                // Console.ReadKey();

     

                //string[] str2 = File.ReadAllLines(@"C:UsersBDSOFTDesktop1.txt",Encoding.Default);

                //Encoding.Default 即系统默认编码 一般是gb2312

     

                // for (int i = 0; i < str2.Length; i++)

                // {

                //      Console.WriteLine(str2[i]);

                // }

     

                //如果要操作文本文件每行数据,那么用ReadAllLines

                //ReadAllBytes和ReadAllText拿到的整陀数据

     

     

                //  string str = File.ReadAllText(@"C:UsersBDSOFTDesktop1.txt",Encoding.Default);

                // Console.WriteLine(str);

     

                // =======================File类写入================

     

                string str = "今天是最后一天复习啦";

               

                //字符转换成字节数组

                byte[] buffer = Encoding.Default.GetBytes(str);

     

     

                //File.WriteAllBytes(@"C:UsersBDSOFTDesktop1.txt", buffer);

     

     

                //以行的方式写入 (这里传入的是string数组)

                //File.WriteAllLines(@"C:UsersBDSOFTDesktop1.txt", new string[] { "张三", "李四", "王五" });

     

                //直接写入一大陀

                // File.WriteAllText(@"C:UsersBDSOFTDesktop1.txt", "今天很凉快");

     

     

                 //File.AppendAllText(@"C:UsersBDSOFTDesktop1.txt", "没有覆盖哟");

    Path(对字符串操作)      

    文件本身没有改变。

     

    Directory

    //Directory.CreateDirectory(@"C:UsersBDSOFTDesktop新的文件夹");

     

                //Directory.Delete(@"C:UsersBDSOFTDesktop新的文件夹",true);

     

                //Console.ReadKey();

     

                //Directory.Move(@"a",@"b");

     

                //string[] a = Directory.GetFiles(@"C:UsersBDSOFTDesktopMusic","*.mp4");

     

                //for (int i = 0; i < a.Length; i++)

                //{

     

                //    Console.WriteLine(a[i]);

                //}

     

                //Console.ReadKey();

     

     

    练习题:把文件中工资翻倍,然后保存。

    class Program

        {

            static void Main(string[] args)

            {

                //案例:对职工工资文件处理,所有人的工资加倍然后输出到新文件

     

     

     

                string[] str = File.ReadAllLines(@"C:工资.txt",Encoding.Default);

     

                for (int i = 0; i < str.Length; i++)

                {

     

                    //张三|5000

                    string[] strNew = str[i].Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);

                    //张三 5000

                    int salary = (int.Parse(strNew[1])*2);

                    //10000

                    

                    str[i] = strNew[0] + '|' + salary.ToString();

     

     

                }

     

                File.WriteAllLines(@"C:工资.txt", str,Encoding.Default);

     

     

     

            }

    Stream类(和StreamReader StreamWriter)

     

    ·文件流?

    ·两个大水缸,把一个缸中的水倒入另一个水缸中。两种方式:

    1. 1.     直接把一个缸中的水倒入另一个缸中
    2. 2.     用个桶来把一个缸中的水舀到另一个缸中

     

     

    //FileStream StreamReader StreamWriter

                //区别:一个是操作字节的,一个是操作字符的,垃圾回收器也不会帮助回收

     

                using (FileStream fsRead = new FileStream(@"C:1.txt", FileMode.OpenOrCreate, FileAccess.Read)) 

                {

     

                    byte[] buffer = new byte[1024 * 1024 * 5];

     

     

                    //表示本次读取实际读取到的有效字节数

                    int r =  fsRead.Read(buffer, 0, buffer.Length);

     

                    string s = Encoding.Default.GetString(buffer, 0, r);

                    Console.WriteLine(s);

     

                }

     

                Console.ReadKey();

                                                //OpenOrCreate直接覆盖最前面

                                                //Append在最后面追加

                using (FileStream fsWrite = new FileStream(@"C:1.txt",FileMode.OpenOrCreate,FileAccess.Write))

                {

                    string s = "今天天气好晴朗!!!";

                    byte[] buffer = Encoding.Default.GetBytes(s);

                    fsWrite.Write(buffer, 0, buffer.Length);

     

                    Console.ReadKey();

     

     

                }

    StreamReader

    一种很装逼的写法:

     

                using (FileStream fsRead = new FileStream(@"C:1.txt", FileMode.OpenOrCreate, FileAccess.Read))

                {

                    using (StreamReader sr = new StreamReader(fsRead,Encoding.Default))

                    {

                        while (!sr.EndOfStream)

                        {

                            Console.WriteLine(sr.ReadLine());

     

                        }

                    }

                }

                Console.ReadKey();

    StreamWriter

       byte[] buffer = new byte[1024 * 1024];

     

                using (StreamWriter sw = new StreamWriter(@"C:1.txt", true , Encoding.Default ,buffer.Length   ))

                {

                    sw.WriteLine("哈哈哈");

                }

                Console.WriteLine("ok");

               

     

    序列化

    class Program

        {

            static void Main(string[] args)

            {

     

                //要将序列化对象的类 标记为可以被序列化的

     

                //Person p = new Person();

                //p.Name = "张三";

                //p.Age = 10;

                //p.Gender = '男';

     

     

                //using (FileStream fsWrite = new FileStream(@"C:1.txt", FileMode.OpenOrCreate, FileAccess.Write))

                //{

                //    BinaryFormatter bf = new BinaryFormatter();

                //    bf.Serialize(fsWrite, p);

                //}

     

                //Console.WriteLine("序列化成功");

     

                //Console.ReadKey();

     

                Person p;

                using (FileStream fsRead = new FileStream(@"C:1.txt", FileMode.OpenOrCreate, FileAccess.Read))

                {

                    BinaryFormatter bf = new BinaryFormatter();

                    p =  (Person)bf.Deserialize(fsRead);

                    Console.WriteLine(p.Name);

                    Console.WriteLine(p.Age);

                    Console.WriteLine(p.Gender);

                    Console.ReadKey();

                }

     

               

            }

        }

     

        [Serializable]

        public class Person

        {

            public string Name

            {

                get;

                set;

            }

     

            public int Age

            {

                get;

                set;

            }

     

            public char Gender

            {

                get;

                set;

            }

     

     

     

        }

    一点额外内容

     

    1.简单播放器(winform)

    。。。

     

  • 相关阅读:
    简单有效 四招教你保护好WiFi网络安全
    WP8手机安装《神庙逃亡》的教程
    如何关闭iOS7中的iPhone广告跟踪系统
    如何隐藏任务栏图标
    MVC中Controller和Action讲解上篇
    node.js
    express
    node.js+socket.io安装
    自定义view文字垂直居中
    AndroidTouch事件总结
  • 原文地址:https://www.cnblogs.com/eret9616/p/8762782.html
Copyright © 2011-2022 走看看