Как добавить символы в строчки файла
В .txt файле имеется такая запись:
test
test2
test3
Мне нужно прочитать этот файл и изменить/добавить в уже существующий текст символ " и , (запятая) Должно получиться так:
"test",
"test2",
"test3",
Как правильно это реализовать?
Ответы (1 шт):
Автор решения: Roman Onofreichuk
→ Ссылка
Почитать:
https://metanit.com/sharp/tutorial/5.5.php Чтение и запись текстовых файлов. StreamReader и StreamWriter
Само решение данной задачи:
private static async Task Main()
{
List<string> lan = new List<string>
{
"Roma",
"Rita",
"Dima"
};
var readList = new List<string>();
string writePath = @"D:\SomeDir2\test.txt";
//Создание\пересоздание нового файла и запись в него
try
{
using (StreamWriter sw = new StreamWriter(writePath, false, System.Text.Encoding.Default))
{
foreach (string n in lan) { await sw.WriteLineAsync(n); }
}
Console.WriteLine("Запись выполнена");
}
catch (Exception e) { Console.WriteLine(e.Message); }
//Считывает текст из файла
try
{
using (StreamReader sr = new StreamReader(writePath, System.Text.Encoding.Default))
{
string line;
while ((line = await sr.ReadLineAsync()) != null) { readList.Add(line); }
}
Console.WriteLine("Чтение выполнено");
}
catch (Exception e) { Console.WriteLine(e.Message); }
//создает объкт типа Linq.Enumerable с нужными изменениями
//(Select: определяет проекцию выбранных значений)
var newName = readList.Select(x => $"\"{x}\",");
//Перезаписывает файл
try
{
using (StreamWriter sw = new StreamWriter(writePath, false, System.Text.Encoding.Default))
{
foreach (string n in newName) { await sw.WriteLineAsync(n); }
}
Console.WriteLine("Перезапись выполнена");
}
catch (Exception e) { Console.WriteLine(e.Message); }
ReadKey();
}