zoukankan      html  css  js  c++  java
  • 文件流操作(FileStream,StreamReader,StreamWriter)

    大文件拷贝:

     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[6 * 1024 * 1024];
    20                         int m = fsRead.Read(buffer, 0, buffer.Length);
    21 
    22                         if (m==0)
    23                         {
    24                             break;
    25                         }
    26                         else
    27                         {
    28                             fsWrite.Write(buffer, 0, m);
    29                             double dl = Math.Round(((double)fsWrite.Position / n) * 100, 1);
    30                             Console.WriteLine("总进度:{0}%", dl);
    31                         }
    32                     }
    33                     sw.Stop();
    34                     double iTime = Math.Round((double)sw.ElapsedMilliseconds / 1000, 2);
    35                     Console.WriteLine("总运行时间:"+iTime+"");
    36                 }
    37             }
    38         }
    View Code

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

     1 #region 使用StreamWriter进行写
     2             using (StreamWriter sw = new StreamWriter(@"D:demo.txt"))
     3             {
     4                 for (int i = 1; i <= 20; i++)
     5                 {
     6                     sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd") + "	" + i.ToString());
     7                 }
     8             }
     9             Console.WriteLine("OK"); 
    10             #endregion
    View Code
     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
    View Code
  • 相关阅读:
    require.js+bootstrap实现简单的页面登录和页面跳转
    require.js疑惑
    汉子转拼音(不支持多音字)
    require.js入门
    CSS+transform画动态表情
    nodejs的简单爬虫
    根据选择的省市区自动匹配邮政编码
    node将excel内容转json
    js实现省市区联动
    sql server 作业收缩数据库
  • 原文地址:https://www.cnblogs.com/chens2865/p/4537013.html
Copyright © 2011-2022 走看看