使用.NET很容易地访问文件

开发者在线 Builder.com.cn 更新时间:2004-02-04作者:ZDNet China 来源:

以上为System.IO空间名称的例子,你可以看到蕴藏的灵活性。这些类的一个不足之处是,一个流作为前台方式服务于其它一个类,这就有可能在第一个流上执行多余的处理。和文件操作一样,这些方法被应用于加密或者缓冲等处理。

既然我们已经建立.NET流的基本知识,现在让我们更深入学习使用流来处理数据文件。

以文本文件方式工作

System.IO空间名称的File类提供了用于文本文件的必需功能。以下VB.NET源代码范例说明了它很容易使用,这一代码片段为显示位于本地硬盘中一个文本文件的内容:

Dim sr as StreamReader
Dim fileContents As String
sr = File.OpenText("c:test.txt")
fileContents = sr.ReadToEnd()
Console.WriteLine(fileContents)
sr.Close()

在C#中类似的代码也相当简单:

StreamReadersr = null;
String fileContents = null;
sr = File.OpenText("c:prodinfo.txt");
fileContents = sr.ReadToEnd();
Console.WriteLine(fileContents);
sr.Close();

关于这一范例,有几个值得注意的地方。首先,你必须包含System.IO空间名称,以保证代码能按计划而运行。同时,StreamReader类被用于作为Flie类的方法的前台。这一代码范例使用StreamReader类的ReadToEnd方法来读取文件的全部内容,除此之外,还包括以下的其它方法来访问文件的内容:

  • ReadLine:在某一时间读取一行。

  • Read:使用固定点和长度来读取文件内容。

  • ReadBlock:将数据读取到缓冲。

  • Peek:读取下一个字符。

    你可以使用ReadLine方法一行一行地读取文件的内容,这样可以改变前一范例的读取方式。以下C#代码实现了这一要求:

    StreamReadersr = null;
    String oneLine = null;
    sr = File.OpenText("c:test.txt");
    oneLine = sr.ReadLine();
    while (oneLine != null) {
    Console.WriteLine(oneLine);
    oneLine = sr.ReadLine();
    }
    sr.Close();

    代码使用while循环在某一时刻一行的方式循环读取整个文件内容。同样,我们还可以利用File类的OpenText方法,但还得包括其它的一些方法,这些方法包括:

  • AppendText:在一个文本文件的后尾添加一个文本。

  • Cope:将一个文件从一个位置复制到另一位置。

  • Create:建立一个用于写入的新文件。

  • Delete:删除一个指定的文件。

  • Exists:验证一个文件是否存在(返回一个Boolean值)。

  • Move:将一个文件从当前位置移动到一个新的位置。

  • Open:打开一个文件。

  • OpenRead:打开一个用于读取的已经存在的文件。

  • OpenWrite:打开一个用于写入的已经存在的文件。

  • 用户评论

    • 用户名
    • 评论内容