Чтение и запись (сохранение) двумерного массива - C#
Формулировка задачи:
Имеется двумерный массив, нужно, чтобы пользователь мог его сохранить, а потом снова открыть.
Решение задачи: «Чтение и запись (сохранение) двумерного массива»
textual
Листинг программы
static int[,] ReadArray(string path)
{
int[,] arr;
using (StreamReader sr = new StreamReader(path))
{
int n = int.Parse(sr.ReadLine()); //число строк
int m = int.Parse(sr.ReadLine()); //число столбцов
arr = new int[n, m];
for (int i = 0; i < n; i++)
{
//Считываем очередную строку из файла, в которой хранятся значения столбцов текущей строки
//Методом Split разбиваем ее по пробелам и заполняем массив.
string temp = sr.ReadLine();
string[] line = temp.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
for (int j = 0; j < m; j++)
{
arr[i, j] = int.Parse(line[j]);
}
}
}
return arr;
}
static void WriteArray(string path, int[,] array)
{
using (StreamWriter sw = new StreamWriter(path, false))
{
sw.WriteLine(array.GetLength(0));
sw.WriteLine(array.GetLength(1));
for (int i = 0; i < array.GetLength(0); i++)
{
string[] line = new string[array.GetLength(1)];
for (int j = 0; j < array.GetLength(1); j++)
{
//Cобираем в строковый массив столбцы текущей строки массива
line[j] = array[i, j].ToString();
}
//Метод Join() склеивает элементы массива line в одну строку, разделяя их пробелами
sw.WriteLine(String.Join(" ", line));
}
}
}