C#中FileStream
2014-06-18 23:47
120 查看
FileStream: 用来操作字节的。
1.使用FileStream读取文件:(读取文件,是从文件的缓冲区中读取)
2.使用FileStream写文件:(写文件是要将字符串转换为字节数组写入到指定路径的文件中)
练习:使用FileStream复制多媒体文件
1.使用FileStream读取文件:(读取文件,是从文件的缓冲区中读取)
//1.创建FileStream的对象 FileStream fs = new FileStream(@"要读取的文件绝对路径", FileMode.Open, FileAccess.Read); //2.创建缓冲区的大小 创建5M的缓冲区,每读取5M的数据就向控制台写一次;如果文件比较小,缓冲区的大小就直接设置为:fs.Length. byte[] buffer = new byte[fs.Length];// new byte[1024 * 1024 * 5]; //如果读取的文件较小,就直接将缓冲区的长度设置为fs.Length. //r表示每次实际从缓冲区中读取到的字节数。 int r = fs.Read(buffer, 0, buffer.Length); //如果文件比较大就判断r是否为0,如果为0了 说明数据读完了。 //将字节数组转换为字符串 string str = System.Text.Encoding.Default.GetString(buffer); Console.WriteLine(str); //最后关闭流,并且释放资源 fs.Close();//关闭流 fs.Dispose();//释放资源
2.使用FileStream写文件:(写文件是要将字符串转换为字节数组写入到指定路径的文件中)
<pre name="code" class="csharp">//1.创建FileStream的对象 using(FileStream fs = new FileStream(@"要写入的文件的绝对路径", FileMode.OpenOrCreate, FileAccess.Write)) { string strIn="我是FileStream写入的文本";//要写入的字符串 //2.将要写入的字符串转换为字节数组 byte[]buffer=System.Text.Encoding.Default.GetBytes(strIn); //3.调用FileStream的写的方法 fs.Write(buffer,0,buffer.Length); }
练习:使用FileStream复制多媒体文件
/// <summary> /// 复制文件 /// </summary> /// <param name="sourcePath">文件的原路径</param> /// <param name="targePath">文件的目标路径</param> public static void CopyMediaFile(string sourcePath, string targePath) { //复制文件步骤是:先读取源文件,将原文件存在缓冲区中,然后再从缓冲区中每次读取指定大小的文件,写入到新的路径下。 //创建读文件的对象 using (FileStream fsRead = new FileStream(sourcePath, FileMode.OpenOrCreate, FileAccess.Read)) { //创建写文件的对象 using (FileStream fsWrite = new FileStream(targePath, FileMode.OpenOrCreate, FileAccess.Write)) { //首先设置缓冲区的大小,每次读取缓冲区大小的文件放入到缓冲区中 byte[] buffer = 4000 new byte[5 * 1024 * 1024];//缓冲区的大小是5M //从缓冲区中一直的读取,直到读取到的实际字节数为0就停止 while (true) { //读取文件,r 表示每次从缓冲区中读取的实际字节数 int r = fsRead.Read(buffer, 0, buffer.Length); //读取指定字节的数据到缓冲区中,r是每次读取到缓冲区中的数据 if (r == 0) {//如果读完了 break; } else {//没读完,正在读取, //将读取到的数据写入到指定的目录下。 fsWrite.Write(buffer, 0, r); } }//while_end }//fsWrite-using }//fsRead-using }//方法——end
相关文章推荐
- c#调用COM组件
- c#中虚函数的相关使用方法
- 浅析C# web访问mysql数据库-整理归纳总结
- C# IP地址与整数之间转换的具体方法
- C#中的多态深入理解
- C#实现的阴历阳历互相转化类实例
- C# 的关键字详细介绍
- c# 获得局域网主机列表实例
- C#基本概念列举详解
- C#中Convert.ToInt32()和int.Parse()的区别介绍
- C#面向对象特征的具体实现及作用详解
- c#静态方法和非静态方法详细介绍
- 关于C# Math 处理奇进偶不进的实现代码
- C#中调用Windows API的技术要点说明
- c# 随机函数的使用详解
- c#之圆形无标题栏椭圆窗体的实现详解
- C#页面之间跳转功能的小结
- 浅析C# 基础语法的使用
- C#中将字符串转换为整型的三种解决方法总结
- 深入c# GDI+简单绘图的具体操作步骤(一)