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

      

  • 相关阅读:
    深入浅出聊优化:从Draw Calls到GC
    关于Unity中植物树木烘焙后没有影子的解决方法
    Marvelous Designer 服装设计与模拟
    DAZ studio 4.9基础
    在下载SOPC代码的过程中遇到的一些错误
    开发工程师人生之路
    简易信号发生器的设计
    HDU A Simple Math Problem (矩阵快速幂)
    HDU Queuing (递推+矩阵快速幂)
    POJ 3233 Matrix Power Series(矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/c-x-a/p/7742377.html
Copyright © 2011-2022 走看看