C#程序读取和解析文本数据

需积分: 10 2 下载量 193 浏览量 更新于2024-09-12 收藏 2KB TXT 举报
该代码示例展示了如何在C#中读取文本文件中的数据,并将其存储到二维数组中。程序使用了`OpenFileDialog`让用户选择要读取的文件,然后通过`FileStream`和`StreamReader`读取文件内容,再利用字符串的`Split`方法解析分隔的数据。 详细知识点: 1. **命名空间**:开头的`using`语句引入了几个常用命名空间,如`System`、`System.IO`等,它们包含了进行文件操作和对话框交互所需的基础类库。 2. **C# 类与方法**:`Program`类是应用程序的入口点,其中的`Main`方法是程序执行的起始位置。`[STAThread]`属性标记表示主线程为单线程 apartments 模型,这是Windows Forms应用程序的标准设置。 3. **异常处理**:代码使用`try-catch`结构来捕获可能发生的异常,例如文件不存在或格式错误。如果出现异常,程序将打印出错误信息,而不是完全崩溃。 4. **OpenFileDialog**:`OpenFileDialog`类提供了一个对话框,用户可以选择要打开的文件。`Filter`属性用于设定可选文件类型,如本例中的`.txt`和`.xls`文件。 5. **FileStream**:`FileStream`类用于读写磁盘上的文件。在这里,它被用来打开用户选择的文件,并以读模式(`FileMode.Open`)打开。 6. **StreamReader**:`StreamReader`是从流中读取字符的类,这里用于读取整个文件的内容到一个字符串变量`temp`。 7. **字符串操作**:`Split`方法用于根据指定的分隔符将字符串分割成数组。在本例中,用分号(`;`)将行分割,用逗号(`,`)将列分割。这允许程序解析以特定分隔符组织的数据。 8. **数据转换**:使用`Convert.ToDouble`将从文本中读取的字符串转换为双精度浮点数,以便将数据存储在二维数组`source`中。 9. **数组操作**:程序创建了一个3x6的二维数组`source`,并用`for`循环遍历文本数据,将解析出来的值存储到相应的位置。 10. **输出结果**:最后,程序打印出数组中的某个元素(`source[1,1]`)作为验证数据是否正确读取的例子。 通过这个代码,开发者可以学习到在C#中如何与用户交互,读取文件,以及处理分隔符分隔的数据。这些基本技能对于任何涉及文件操作的C#项目都是至关重要的。