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);
}
}
}
C#基础学习之FileStream的更多相关文章
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- IOS基础学习-2: UIButton
IOS基础学习-2: UIButton UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...
- HTML5零基础学习Web前端需要知道哪些?
HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...
- python入门到精通[三]:基础学习(2)
摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...
- python入门到精通[二]:基础学习(1)
摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...
- CSS零基础学习笔记.
酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...
- Yaf零基础学习总结5-Yaf类的自动加载
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...
- Yaf零基础学习总结4-Yaf的配置文件
在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...
随机推荐
- NOIP赛前集训营-提高组(第一场)#B 数数字
题目描述 小N对于数字的大小一直都有两种看法.第一种看法是,使用字典序的大小(也就是我们常用的判断数字大小的方法,假如比较的数字长度不同,则在较短一个前面补齐前导0,再比较字典序),比如43<3 ...
- 2017/10 冲刺NOIP集训记录:暁の水平线に胜利を刻むのです!
前几次集训都没有记录每天的点滴……感觉缺失了很多反思的机会. 这次就从今天开始吧!不能懈怠,稳步前进! 2017/10/1 今天上午进行了集训的第一次考试…… 但是这次考试似乎是近几次我考得最渣的一次 ...
- hbase 多个过滤器组合(列表)
使用FilterList要保证过滤器的顺序需要使用List<Filter> private static void mutilFilterData() throws IOException ...
- word2010激活工具使用方法
1.关闭杀毒,关闭正打开着的word文档 2.执行Activator_v1.2.exe-->Activation Office 2010VL -->按1 -->完毕. 3.打开wor ...
- MT【162】渐近估计
(2017北大优特测试第八题) 数列 \(\{a_n\}\) 满足 \(a_1=1\),\(a_{n+1}=a_n+\dfrac{1}{a_n}\),若 \(a_{2017}\in (k,k+1)\) ...
- PHP-从零开始使用Solr搜索引擎服务(下)
前言: 原文地址: http://www.cnblogs.com/JimmyBright/p/7156085.html 前面在配置完成Solr服务之后,在浏览器上可以打开Solr的管理界面,这个界面几 ...
- 使用msbuild.exe绕过应用程序白名单(多种方法)
一.MSbuild.exe简介 Microsoft Build Engine是一个用于构建应用程序的平台.此引擎也被称为msbuild,它为项目文件提供一个XML模式,该模式控制构建平台如何处理和 ...
- ---web模型 --mvc和模型--struts2 入门
关于web模型: 早期的web 应用主要是静态页丽的浏览〈如新闻的制监),随着Internet的发展,web应用也变得越来越复杂,不仅要 和数据库进行交互 ,还要和用户进行交互,由此衍生了各种服务器端 ...
- 设计模式之单例模式实现(C++)
#ifndef SINGLETON_H #define SINGLETON_H #include <cassert> #include <memory> #include &l ...
- qq接入
「花与剑: https://blog.csdn.net/wbbott/article/details/53107009」—————————