c#文件流操作

       文件流保存数据!

   //定义一个字符串:

  string msg = "我是中国人,我爱中国,我是中国人,我爱中国,我是中国人,我爱中国,我是中国人,我爱中国,我是中国人,我爱中国";

  

  byte[] bytes=System.Text.Encoding.UTF8.GetBytes(msg);  //把字符串转换成byte数组,

 

 using( FileStream fswrite = new FileStream(@"c:\ddd.txt",FileMode.Create))   //创建一个文件流,创建一个文件ddd.txt保存在c盘根目录下;

{

  

   fswrite.Write(bytes ,0,bytes .Length );    //读入流,第一个参数传一个byte数组,第二个参数从byte数组的0开始读取,第三个一次读的长度

}

 

  读取文件流

  

using (FileStream fsread = new FileStream(@"c:\ddd.txt", FileMode.Open))  //读取一个本地的文件
{
    byte[] byts = new byte[1024];           

     int r = fsread.Read(byts,0,byts.Length );


     string msg = System.Text.Encoding.UTF8.GetString(byts);

     Console.WriteLine(msg);
     Console.ReadKey();
}

  大文件读取

    

  string source = @"E:\学习资料\C#本质论(中文版).pdf";

   string target = @"C:\01.pdf";

   FileCopy(source, target);

    

private static void FileCopy(string source, string target)
{
     //1.创建一个读取源文件的文件流
     using (FileStream fsRead = new FileStream(source, FileMode.Open))
    {
      long length = fsRead.Length;
      using (FileStream fsWrite = new FileStream(target, FileMode.Create))
      {
        //缓冲区。
       byte[] byts = new byte[1024 * 1024];
      long count = 0;
       while (true)
     {
         / /fsRead.Position
      //每次从文件流中读取2M的数据到byts中。
       int r = fsRead.Read(byts, 0, byts.Length);
        if (r <= 0)
      {
       break;
      }
      count += r;

      fsWrite.Write(byts, 0, r); //r表示向流中写入,本次实际读取到的字节个数。


     Console.Write(".");
     Console.WriteLine((double)count / length);
       }
     } 
   }
}

  

posted @ 2013-04-22 22:14  apecoder  阅读(189)  评论(0编辑  收藏  举报