c# 写代码实现读取文本文件写入二维数组
时间: 2024-02-05 11:05:16 浏览: 87
可以使用以下代码来实现:
```csharp
string[] lines = File.ReadAllLines("file.txt");
int rows = lines.Length;
int cols = lines[0].Split(' ').Length;
int[,] array = new int[rows, cols];
for (int i = 0; i < rows; i++)
{
string[] values = lines[i].Split(' ');
for (int j = 0; j < cols; j++)
{
array[i, j] = int.Parse(values[j]);
}
}
```
这段代码首先使用 `File.ReadAllLines` 方法读取文本文件的所有行,并将其存储在字符串数组中。然后,它计算了数组的行数和列数,并创建了一个具有相应大小的二维整数数组。最后,它使用两个嵌套的循环将每个字符串值解析为整数,并将其存储在二维数组中。
相关问题
c# 文本文件写入二维数组
以下是一个示例代码,可以将一个二维数组写入到文本文件中:
```csharp
int[,] array = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
string filePath = "array.txt";
// 将二维数组转换为字符串
string arrayStr = "";
for (int i = 0; i < array.GetLength(0); i++)
{
for (int j = 0; j < array.GetLength(1); j++)
{
arrayStr += array[i, j].ToString() + " ";
}
arrayStr += "\n"; // 换行
}
// 将字符串写入文件
System.IO.File.WriteAllText(filePath, arrayStr);
```
这个示例中,我们首先定义了一个二维数组 `array`,然后定义了一个文件路径 `filePath`。接着,我们将二维数组转换为一个字符串 `arrayStr`。在字符串中,我们使用空格将每个元素分隔开,使用 `\n`(换行符)将每一行分隔开。最后,我们使用 `System.IO.File.WriteAllText` 方法将字符串写入到文件中。
如果你想要从文本文件中读取二维数组,可以使用类似的方法,只不过需要将字符串转换为二维数组。
c# 文本文件写入与读出二维数组
可以使用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` 类。请注意,读取文件时,我们需要先读取一遍文件来确定行列数,然后再根据行列数创建数组并读取数据。
阅读全文