利用.NET类库中的流类对文件进行操作

    读写文本文件,是许多.NET应用程序的基础性工作。文件可以用于在应用程序的实例之间存储数据,或者在应用程序之间传递数据。文件还可以存储用户和应用程序配置,以便在下一次运行应用程序时检索他们。此外,还可以利用.NET类对有分隔符的文件和数据进行处理。

 

    的概念:

    .NET Framework中的所有输入输出操作都要用到流。流是串行化设备的抽象表示

    使用流的好处:

    串行化设备可以以线性方式存储数据,一次访问一个字节。所谓的串行化设备可以是磁盘文件,网络通道,内存位置或者其他支持以现行方式读写的对象。使用这些抽象化的串行设备,可以隐藏流的基本目标源。这种抽象化可以使代码得到重用,允许编写更通用的例程。当应用程序从文件输入流或者网络输入流中读取数据时,就可以转换并重用类似的代码。此外,使用流还可以忽略每种设备的物理机制。因此,从文件流中读取数据时,无需担心硬盘开销和内存分配问题。

    输出流:向外部目标写数据时使用,外部目标例如指物理磁盘文件,网络位置,打印机或另一个程序。

    输入流:用于将数据读到程序可以访问的内存或变量中。最常见的输入流形式是键盘。

   

    接下来,就要重点学习.NET中用于输入输出的类了,主要看如何通过流来处理文件

    创建、拷贝、删除、读写文件,可以通过利用System.IO命名空间中的以下9种类来实现:

    File---实用类,仅提供静态方法,用于移动,复制,和删除文件。

    FileInfo---表示磁盘或网络位置上的文件实例。它没有静态方法,仅可用于实例化的对象。注意,FileInfo不是流!光是一个FileInfo对象不能读写文件,只能用于移动,复制,和删除文件。要想读写文件,必须进一步创建Stream对象。

    Directory---实用类,提供静态方法,用于用于移动,复制,和删除目录。

    DirectoryInfo---表示磁盘上的物理目录实例,包含处理该目录的方法。

    Path---实用类, 用于处理路径名称。 

    FileStream---FileStream对象实例表示可以读、写、或者二者均可得文件, 此文件可以同步或异步地读写。此外注意,FileStream类读取数据只能处理原始字节,不像StreamReader那样可以便利地直接处理字符。

    StreamReader---从流中读取字符数据, 使用FileStream类作为基类,就可以创建该类及类实例。(流类

    StreamWriter---向流写字符数据,使用FileStream类作为基类,就可以创建该类及类实例。(流类

    FileSystemWatcher---用于监控文件和目录,并提供在这些位置发生变化时应用程序可以捕获的事件。(流类

 

    以上只是粗略地了解了一下这9个类各自的功能,其中只有三个类是流类,至于每个类具体的使用方法,下面分别通过代码详细学习之:

 

(一)File类与FileInfo类的使用:

二者的方法有很多相似的,在使用上,如何选择二者,有一个原则:

如果仅在对象上进行一个方法调用,则可以使用静态类File类。在此,静态调用更快一点。

如果应用程序在文件上执行几种操作则实例化FileInfo对象并使用其方法就更好一些。节省时间,因为对象已经在文件系统上引用正确的文件,而静态类每次都要查找文件,造成了不必要的资源浪费。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值