• C#基础学习之FileStream


    FileStream和File的区别  后者比前者给内存带来压力大。

    FileStream可以操作字节也就是可以保存任何类型的文件。

    1.FileStream读文件操作

                //OpenOrCreate:有就打开,没有就创建
                //FileStream 3个参数的含义: 1.path 2,针对文件什么操作,3针对文件内容怎么操作
                FileStream fsRead = new FileStream(@"D:extension_6_12.crx", FileMode.OpenOrCreate, FileAccess.Read);
                byte[]buffer=new byte[1024*1024*5];//1024*1024*5 只读取5M,不要写太大比如8G 那就内存溢出了。
                //if file byte.length=3.8M 
                //返回本次实际读取的有效字节数。
    
                int r=fsRead.Read(buffer, 0, buffer.Length);//从0读,到最大内容长度5M.
                //将字节数组解码成字符串
                
                string s = Encoding.Default.GetString(buffer,0,r); //只解码内容的部分
                //关闭,GC垃圾回收处理器不会自己自动回收
                fsRead.Close();
                //释放资源
                fsRead.Dispose();
                Console.WriteLine(s);
                Console.ReadKey();
    

      

    2.FileStream写文件操作

                // 使用FileStream写入数据
                using (FileStream fs=new FileStream(@"D:\new.txt",FileMode.OpenOrCreate,FileAccess.Write))
                {
                    string str="666666666666666666666";
                    byte[] buff = Encoding.UTF8.GetBytes(str);
                    fs.Write(buff,0,buff.Length);//如果文件存在那么将,一个一个字符覆盖文件
                }
                Console.WriteLine("写入文件");
                Console.ReadKey();
    

    3.多媒体文件的复制

    将多媒体文件读出来,让后写入到另一个文件

                string source = @"c:\zumba.mp3";
                string targetSource = @"D:\zumba.mp3";
                using (FileStream fsRead=new FileStream(source,FileMode.OpenOrCreate,FileAccess.Read))  
                {
                    using (FileStream fsWrite=new FileStream(targetSource,FileMode.OpenOrCreate,FileAccess.Write))
                    {
                        byte[] buffer = new byte[1024 * 1024 * 6]; //最多读取6M
                        //文件比较大所以循环读取
                        //返回本次读取实际取代的字节数。
                        while (true)
                        {
                            int r = fsRead.Read(buffer, 0, buffer.Length);
                            //如果返回长度0意味着读取完毕
                            if(r==0)
                            {
                                break; 
                             }
                            fsWrite.Write(buffer, 0, r);
                        }
                    }       
                }
    

      

  • 相关阅读:
    每日日报2021.4.14
    每日日报2021.4.13
    每日日报2021.4.12
    每日日报2021.4.9
    每日日报2021.4.8
    每日日报2021.4.7
    每日日报2021.4.6
    每日日报2021 4/22
    每日日报2021 4/21
    每日日报2021 4/20
  • 原文地址:https://www.cnblogs.com/c-x-a/p/7742377.html
Copyright © 2020-2023  润新知