zoukankan      html  css  js  c++  java
  • 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);
                        }
                    }       
                }
    

      

  • 相关阅读:
    改进IT服务流程17步 IT管理
    ISO 17799 /27001标准简介
    风险管理_cissp
    操作安全_cissp
    isms实施步骤
    CISSP要点-第五章安全体系结构和设计
    WLC+AP,跨专线实现异地多SSID流量分流 H-REAP
    186、说一下C++左值引用和右值引用
    180、C++从代码到可执行程序经历了什么?
    177、你知道回调函数吗?它的作用?
  • 原文地址:https://www.cnblogs.com/c-x-a/p/7742377.html
Copyright © 2011-2022 走看看