c# 文本文件写入与读出二维数组
时间: 2023-09-04 16:06:40 浏览: 122
可以使用C#中的File类来进行文本文件的读写操作。下面是一个示例代码,演示了如何将二维数组写入到文本文件中,并从文本文件中读取二维数组。
```csharp
using System;
using System.IO;
class Program
{
static void Main()
{
// 创建一个二维数组
int[,] array = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
// 将二维数组写入到文本文件中
WriteArrayToFile(array, "array.txt");
// 从文本文件中读取二维数组
int[,] arrayFromFile = ReadArrayFromFile("array.txt");
// 打印读取的二维数组
for (int i = 0; i < arrayFromFile.GetLength(0); i++)
{
for (int j = 0; j < arrayFromFile.GetLength(1); j++)
{
Console.Write(arrayFromFile[i, j] + " ");
}
Console.WriteLine();
}
}
static void WriteArrayToFile(int[,] array, string filePath)
{
using (StreamWriter writer = new StreamWriter(filePath))
{
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
writer.Write(array[i, j] + " ");
}
writer.WriteLine();
}
}
}
static int[,] ReadArrayFromFile(string filePath)
{
int[,] array;
using (StreamReader reader = new StreamReader(filePath))
{
string line;
string[] parts;
int rowCount = 0;
int colCount = 0;
while ((line = reader.ReadLine()) != null)
{
if (colCount == 0)
{
parts = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
colCount = parts.Length;
}
rowCount++;
}
array = new int[rowCount, colCount];
reader.BaseStream.Seek(0, SeekOrigin.Begin);
int rowIndex = 0;
while ((line = reader.ReadLine()) != null)
{
parts = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
for (int colIndex = 0; colIndex < parts.Length; colIndex++)
{
array[rowIndex, colIndex] = int.Parse(parts[colIndex]);
}
rowIndex++;
}
}
return array;
}
}
```
在上面的示例代码中,我们将二维数组写入到了名为 `array.txt` 的文本文件中,并从该文件中读取了二维数组。在写入文件时,我们使用了 `StreamWriter` 类,并在读取文件时使用了 `StreamReader` 类。请注意,读取文件时,我们需要先读取一遍文件来确定行列数,然后再根据行列数创建数组并读取数据。
阅读全文