• FileStream类的使用


    1、什么是FileStream类

      FileStream 类对文件系统上的文件进行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道、标准输入和标准输出。读写操作可以指定为同步或异步操作。FileStream 对输入输出进行缓冲,从而提高性能。——MSDN

      简单点说:FileStream类可以对任意类型的文件进行读取操作,而且我们也可以根据自己需要来指定每一次读取字节长度,以此减少内存的消耗,提高读取效率。

    2、File和FileStream的区别

      直观点:File是一个静态类;FileStream是一个非静态类。

      File:是一个文件的类,对文件进行操作。其内部封装了对文件的各种操作(MSDN:提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建FileStream对象)。

      FileStream:文件流的类。对txt,xml,avi等文件进行内容写入、读取、复制...时候需要使用的一个工具。

      打个形象的比喻。File是笔记本,需要Filestream的这个笔才能写.

      换而言之,记事本是一个文件,可以用File操作,里面的内容需要用FileStream来操作。

    注:FileStream是对字节操作的(任何文件)。

     1  //非静态类,创建对象调用方法
     2             using (FileStream Fsread = new FileStream(@"C:UsersAdministratorDesktop测试文档.txt", FileMode.OpenOrCreate, FileAccess.Read))
     3             {
     4                 byte[] b = new byte[50]; 
     5                 //用来限定每次的读取字节数,也可以byte[] b=new byte[Fsread.Length];
     6                 string s = "";
     7                 while (true)
     8                 {
     9                     int r = Fsread.Read(b, 0, b.Length);
    10                     if (r == 0)
    11                         break;
    12                     s += Encoding.UTF8.GetString(b, 0, r);
    13 
    14                 }
    15                 Console.Write(s);
    16                 // Fsread.Close();//关闭当前流
    17                 // Fsread.Dispose();//释放流所使用的资源
    18             }

    将创建文件流的过程写在using中,可以自动帮助释放流所占用的资源。

    1  //文件流的写入
    2             using (FileStream fswrite = new FileStream(@"C:UsersAdministratorDesktop测试文档.txt", FileMode.OpenOrCreate, FileAccess.Write))
    3             {
    4                 string str = "一切皆有可能";
    5                 byte[] buffer = Encoding.UTF8.GetBytes(str);
    6                 fswrite.Write(buffer, 0, buffer.Length);
    7             }

    无论是读还是写,都要借助一个缓冲区buffer来存取字节。

    注意:在写入和读取时,字符编码格式要相同,不然会出现乱码。

     Encoding.UTF8.GetBytes(str);
     Encoding.UTF8.GetString(b, 0, r);
     

     

     

  • 相关阅读:
    面向对象程序设计(JAVA) 第11周学习指导及要求
    面向对象程序设计(JAVA) 第10周学习指导及要求
    国内外计算机教育领域顶会、权威期刊名录
    面向对象程序设计(JAVA) 第8周学习指导及要求
    JAVA类与类之间的关系及代码示例
    面向对象程序设计(Java) 第7周学习指导及要求
    面向对象程序设计(Java) 第6-7周学习指导及要求
    面向对象程序设计(Java) 第4周学习指导及要求
    面向对象程序设计(Java) 第2周学习指导及要求
    前端开发基础,JavaScript 主要作用是什么?
  • 原文地址:https://www.cnblogs.com/apollo-shen/p/6789255.html
Copyright © 2020-2023  润新知