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

  

C#基础学习之FileStream的更多相关文章

  1. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  2. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  3. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  4. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  5. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  6. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

  7. CSS零基础学习笔记.

    酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...

  8. Yaf零基础学习总结5-Yaf类的自动加载

    Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...

  9. Yaf零基础学习总结4-Yaf的配置文件

    在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...

随机推荐

  1. [BZOJ4446]SCoi2015 小凸玩密室 树形DP(烧脑高能预警)

    4446: [Scoi2015]小凸玩密室 Time Limit: 10 Sec  Memory Limit: 128 MB Description 小凸和小方相约玩密室逃脱,这个密室是一棵有n个节点 ...

  2. shell条件判断

    1.字符串判断 str1 = str2 当两个串有相同内容.长度时为真 str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) -z str1 当 ...

  3. 【BZOJ3884】上帝与集合的正确用法

    Description 一句话题意,给定\(p\)作为模数: \(p\le 10^7\),数据组数\(T\le1000\). Solution 看到就弃疗了,再见...... 将模数\(p\)拆分成\ ...

  4. Git 常用操作(二)

    第一次传数据:echo "# miya" >> README.mdgit initgit add README.mdgit commit -m "first ...

  5. 二、Linux学习之centOS的的setup

    因为我是在VMware上安装的centOS,网络设置选择的是桥接模式,这样可以和实体机使用同样的网络,但是也使用同样的IP,因此就需要设置一下IP了,否则使用ifconfig查询ip的时候显示的是12 ...

  6. 设置CMD默认路径

    用CMD每一次都得切换路径,很麻烦. 所以,需要设置一下CMD默认路径: 1.打开注册表编辑器(WIN+R打开运行.输入regedit) 2.定位到: “HKEY_CURRENT_USER\Softw ...

  7. NO.2day 操作系统基础

    操作系统基础 1.为什么要有操作系统 操作系统为用户程序提供一个更好.更简单.更清晰的计算机模型,并管理刚才提到的所有设备(磁盘.内存.显示器.打印机等).程序员无法把所有的硬件操作细节都了解到,管理 ...

  8. C#实现执行数据库事务案例

    我是实际项目来拆出来做的案例,场景是比如我们在做电商网站时,在创建订单时的一系列操作,通常在创建订单时我们需要数据表的操作有:订单的表头(主表).订单的详细.清空购物车.甚至是修改优惠劵的状态(在使用 ...

  9. [Web] Web请求过程之二:DNS 域名解析

    一.域名解析过程 1.浏览器检查缓存,域名缓存时间可以通过 TTL 属性来设置. 2.如果浏览器缓存中没有,浏览器会去查找操作系统缓存中是否有这个域名对应的 DNS 解析结果.如果要设置域名对应的 I ...

  10. day6 方法

    1.方法是一段可重复调用的代码段,今天学习的方法可以由主方法直接调用,所以加入public static关键字修饰. 2.方法的重载为方法名相同,参数的类型或个数不同.