C#编程:读取txt文件内容到二维数组

3星 · 超过75%的资源 需积分: 44 171 下载量 50 浏览量 更新于2024-09-15 收藏 1KB TXT 举报
"C#读取txt数据到数组中" 在C#编程中,读取文本文件(如txt)的数据是一项常见的任务。这个示例代码展示了如何读取txt文件中的数据并将其存储到二维数组中。这里我们将详细解析这段代码的工作原理。 首先,`button1_Click`事件处理程序被触发,这通常意味着用户点击了一个按钮。在此事件中,一个`OpenFileDialog`对话框被打开,允许用户选择一个txt文件。如果用户选择了文件且没有取消操作(`openFileDialog1.ShowDialog() != DialogResult.Cancel`),则会继续执行后续步骤。 变量`FileName`被设置为所选文件的路径,然后创建了一个`StreamReader`对象`readfile`来读取文件内容。`readfile.BaseStream.Seek(0, System.IO.SeekOrigin.Begin)`这一行将读取指针定位到文件的开头,以便从头开始读取。 接着,通过`while (readfile.ReadLine() != null)`循环计算文件中的行数,并将结果存储在`line_total`中。然后,行数显示在`textBox3`控件中,这样用户可以看到文件有多少行。 在下一次循环中,实际的读取操作开始。创建了一个`List<string[]>`对象`list`用于存储读取的行数据。这次循环(`while (!readfile.EndOfStream)`)不会计算行数,而是逐行读取数据。`readfile.ReadLine()`方法获取一行文本,然后使用`Split('')`将这一行按空格分割成字符串数组。 每个分割后的数组(`string[] line`)被复制到一个新的字符串数组`arr`中,并通过`Convert.ToString(line[i])`确保所有元素都是字符串类型。这个新数组`arr`随后添加到`list`中。这个过程会持续到文件的末尾。 最后,`list`被转换为一个二维数组`shuzu`,这样就可以方便地访问和处理数据。例如,`textBox4.Text = shuzu[0][5];`将第一行的第六个元素显示在`textBox4`中。需要注意的是,数组索引是从0开始的,所以`shuzu[0][5]`实际上是指第一行的第六个元素。 总结起来,这段代码演示了C#中如何使用`StreamReader`读取txt文件,计算行数,以及如何将数据存储到二维数组中进行进一步处理。这种技术对于处理包含结构化数据的文本文件非常有用,例如CSV文件。在实际应用中,可以根据需要调整代码以适应不同的分隔符、异常处理和其他特定需求。