对文件I/O的操作
### 对文件I/O的操作 #### 知识点详解 **一、文件I/O的基本概念** 文件I/O(Input/Output)是指程序与文件系统之间的数据交互过程,涉及到数据的读取(Input)和写入(Output)。在各种编程语言中,文件I/O都是一个重要的组成部分,尤其是在处理大量数据或进行数据持久化时。 **二、.NET Framework中的文件I/O** 在.NET Framework中,文件I/O操作主要通过`System.IO`命名空间下的类来实现。这些类提供了丰富的API,可以完成诸如文件读写、目录操作等任务。与传统的FileSystemObject相比,.NET的文件I/O机制更加高效、安全,并且易于使用。 #### 演示文件I/O操作 **1. 读取文本文件** - **使用类:** `StreamReader` - **示例代码:** ```csharp using System.IO; string winDir = Environment.GetEnvironmentVariable("windir"); StreamReader reader = new StreamReader(winDir + "\\system.ini"); try { do { this.listBox1.Items.Add(reader.ReadLine()); } while (reader.Peek() != -1); } catch { this.listBox1.Items.Add("File is empty"); } finally { reader.Close(); } ``` - **说明:** 此段代码展示了如何使用`StreamReader`类读取文本文件`system.ini`。通过`ReadLine()`方法逐行读取文件内容,并使用`Peek()`方法检查是否到达文件末尾。读取的数据被添加到一个`ListBox`控件中。 **2. 写入文本文件** - **使用类:** `StreamWriter` - **示例代码:** ```csharp StreamWriter writer = new StreamWriter("c:\\KBTest.txt"); writer.WriteLine("File created using StreamWriter class."); writer.Close(); this.listBox1.Items.Clear(); this.listBox1.Items.Add("File written to C:\\KBTest.txt"); ``` - **说明:** 这段代码展示了如何使用`StreamWriter`类创建并写入文本文件。`WriteLine()`方法用于向文件写入一行文本,然后调用`Close()`方法关闭文件流。 **3. 查看文件信息** - **使用类:** `FileInfo` - **示例代码:** ```csharp FileInfo FileProps = new FileInfo(winDir + "\\notepad.exe"); this.listBox1.Items.Add("FileName=" + FileProps.FullName); this.listBox1.Items.Add("Creation Time=" + FileProps.CreationTime); this.listBox1.Items.Add("Last Access Time=" + FileProps.LastAccessTime); ``` - **说明:** 此代码段展示了如何使用`FileInfo`类获取文件的元信息,如全路径名、创建时间、最后访问时间等,并将其显示在`ListBox`控件中。 **三、注意事项** 当直接使用上述示例代码时,需确保包含了`System.IO`命名空间,并正确声明和使用变量与函数,例如`winDir`和`addListItem`函数。 #### 结论 文件I/O操作是任何涉及文件处理的程序的核心功能之一。在.NET Framework中,通过`System.IO`命名空间下的类,如`StreamReader`、`StreamWriter`和`FileInfo`,可以高效、安全地进行文件的读写和信息查询。掌握这些基本的文件I/O操作对于任何级别的开发者来说都是非常必要的技能。