大文件拷贝:

  1. /// <summary>
  2. /// 大文件拷贝
  3. /// </summary>
  4. /// <param name="sSource"></param>
  5. /// <param name="sTarget"></param>
  6. private static void CopyFile(string sSource, string sTarget)
  7. {
  8. using (FileStream fsRead=new FileStream(sSource,FileMode.Open,FileAccess.Read))
  9. {
  10. using (FileStream fsWrite=new FileStream(sTarget,FileMode.Create,FileAccess.Write))
  11. {
  12. double n = (double)fsRead.Length;
  13. Stopwatch sw = new Stopwatch();
  14.  
  15. sw.Start();
  16. while (true)
  17. {
  18. //定义一个6MB的缓冲区
  19. byte[] buffer = new byte[ * * ];
  20. int m = fsRead.Read(buffer, , buffer.Length);
  21.  
  22. if (m==)
  23. {
  24. break;
  25. }
  26. else
  27. {
  28. fsWrite.Write(buffer, , m);
  29. double dl = Math.Round(((double)fsWrite.Position / n) * , );
  30. Console.WriteLine("总进度:{0}%", dl);
  31. }
  32. }
  33. sw.Stop();
  34. double iTime = Math.Round((double)sw.ElapsedMilliseconds / , );
  35. Console.WriteLine("总运行时间:"+iTime+"秒");
  36. }
  37. }
  38. }

FileStream是对字节(byte)的操作,上面这种方法拷贝电影文件,大的压缩文件等没问题,但是对于文本文件多半使用后面2个类StreamReader,StreamWriter,

  1. #region 使用StreamWriter进行写
  2. using (StreamWriter sw = new StreamWriter(@"D:\demo.txt"))
  3. {
  4. for (int i = ; i <= ; i++)
  5. {
  6. sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd") + "\t" + i.ToString());
  7. }
  8. }
  9. Console.WriteLine("OK");
  10. #endregion
  1. #region 使用StreamReader进行读
  2. using (StreamReader sr = new StreamReader(@"D:\demo.txt"))
  3. {
  4. string s = sr.ReadLine();
  5. while (!string.IsNullOrEmpty(s))
  6. {
  7. Console.WriteLine(s);
  8. s = sr.ReadLine();
  9. }
  10. }
  11. #endregion

文件流操作(FileStream,StreamReader,StreamWriter)的更多相关文章

  1. c#基础语言编程-文件流操作

    引言 在System.IO 命名空间下提供了一系列的类,我们可以通过相应的类进行文件.目录.数据流的操作. 1.File类:提供用于创建.复制.删除.移动和打开文件的静态方法.File类 2.File ...

  2. 流(Stream)与文件流(FileStream)

    //通过流的方式添加 StreamWriter writer = new StreamWriter(@"C:\A\ca.txt", true, Encoding.Default); ...

  3. delphi 基础之三 文件流操作

    文件流操作 Delphi操作流文件:什么是流?流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具.在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的, ...

  4. (C/C++学习)2.C语言中文件流操作基本函数总结

    函数所在头文件:stdio.h 说明:前半部分主要为对各个文件流操作函数的例举,后半部分着重于上机运行分析.文中部分引用自王桂林老师的C/C++课件. 1.FIELE *fopen(const cha ...

  5. File FileStream StreamReader StreamWriter C#

    存在各种各样的IO设备,比如说文件File类(字符串文件和二进制文件),可以直接使用File类对文件进行读写操作. 这些各种IO的读取和写入是通过流的形式实现的,基类为Stream,针对各种不同的IO ...

  6. 20151024_003_C#基础知识(File / FileStream / StreamReader/StreamWriter)

    1:绝对路径和相对路径 绝对路径:通过给定的路径直接能在我的电脑中找到这个文件. 相对路径:文件相对于应用程序的路径. 2:编码格式 乱码:产生乱码的原因,就是你保存这个文件所采用的编码,跟你打开这个 ...

  7. c++ ofstream & ifstream文件流操作

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; //ofstream & ifstream inherit from istream class ...

  8. C++中输入输出流及文件流操作笔记

    1.流的控制 iomanip          在使用格式化I/O时应包含此头文件.    stdiostream   用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2.类 ...

  9. C++文件编程(文件流操作)

    给出了比较常见的文件操作,包括二进制文件操作.代码如下: #include<iostream> #include<cstdio> #include<cstring> ...

  10. (十四)QFile操作,QByteArray,文件流操作,QTextStream,QDataStream,QFileInfo, QIODevice

    QFile f 1.readall #include "widget.h" #include "ui_widget.h" #include <QFileD ...

随机推荐

  1. VS~单步调试DLL

    有时我们从第三方下载DLL库之后,在使用VS进行调试时还是很麻烦的,现在我总结一下,在开发过过程中调试DLL的方法,希望对各位在开发中有帮助. 1 VS下载插件.Net Refector 2 引用你的 ...

  2. OpenStack API 与 CloudStack API 模块比较

    OpenStack API Block Storage Service API Compute API Compute API extensions Identity Service API and ...

  3. 转移部分博客到CSDN之中

    之前的文章一直发布在个人博客ivyxjc.xyz中, 现在将一部分博客移到csdn博客中.

  4. 推荐一个CodeProject上的SlideForm控件

    CodeProject有一篇文章介绍了怎么实现一个SlideForm,非常不错,收藏在此. http://www.codeproject.com/KB/dialog/csslideform.aspx ...

  5. Codeforces Round #278 (Div. 1) B. Strip multiset维护DP

    B. Strip Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/487/problem/B De ...

  6. MHA手动切换 原创2 (主参与复制)

    monitor 执行下面命令后, --orig_master_is_new_slave :原主变为新从,即server1变成了slave1的从.slave2跟据app1.conf中配制也变成了slav ...

  7. SSAS 实例重命名

            在某些时候我们可能想对现有的SSAS实例进行重命名之类的,比如:我以前有两个SSAS,一个2005,一个2008R2,其中我们2005是一开始安装的,并且是默认实例,2008R2是命名 ...

  8. LeetCode: Populating Next Right Pointer in Each Node

    LeetCode: Populating Next Right Pointer in Each Node Given a binary tree struct TreeLinkNode { TreeL ...

  9. IE7下position:relative的问题

    如果在IE7中使用position:relative属性,需要在该元素的容器上,同时给予position:relative属性.

  10. 我的第一款Cocos2d 游戏小狗快跑基本完成