• 文件流 修改二进制文件


       今天闲下来研究我的恶作剧程序,原先的设计是用文件流来读取文件,然后修改每个字节的二进制值,后来字节尝试了下 代码虽然成功了 但是后来发现一个很成问题的问题 就是效率  

       用实验来分析 首先使用一个TXT作为实验对象,里面10个1  程序执行很快  全部替换成2   然后换成一个 200M的MP4文件 尼玛这个东西字节数达到了1亿多 程序执行了好长时间都没结束

       后来准备采用部分写入的方法 就是限制写入的文件流的字节数,结果发现效果不明显,有些文件损坏点字节还是能用,挣到准备放弃的写这篇文档的时候,灵光一闪,我干嘛还要去遍历字节数组啊,数组生成的时候不就默认有值了么 不就是0 么  哈哈  然后做了一个测试果然速度快太多了  但是也没有想想中的那么好  因为破坏一个1.2G的电影都花了35秒  这效率...  不过想想 如果破坏的顺序修改下或许也不错 就是把遇到大文件 的时候先存放路径然后跳过  等全部破坏完了 在破坏大文件 

       

    核心代码 :

       

        static void Main(string[] args)
            {
                FileInfo file = new FileInfo("d://QQ图片20131124013048.jpg");
    
                FileStream fs = file.Open(FileMode.OpenOrCreate);
    
                //byte[] bb = new byte[fs.Length];
                //fs.Read(bb, 0, bb.Count());
    
                byte[] cc = new byte[fs.Length];
    
    
                //for (int i = 0; i < cc.Length; i++)
                //{
                //    cc[i] = 50;
                //}
    
             
    
                fs.Write(cc, 0, cc.Count());
                // fs.Position = 0;
                fs.Flush();
    
                fs.Dispose();
                fs.Close();
            }
    

      

  • 相关阅读:
    5860. 从双倍数组中还原原数组
    5847. 找到所有的农场组
    5846. 找到数组的中间位置
    442. 数组中重复的数据
    1987. 不同的好子序列数目
    1986. 完成任务的最少工作时间段
    1985. 找出数组中的第 K 大整数
    1984. 学生分数的最小差值
    学习内容整合
    spring-DI和spring-mybatis整合
  • 原文地址:https://www.cnblogs.com/Rock-Lee/p/3535781.html
Copyright © 2020-2023  润新知