Недавно я столкнулся с проблемой, в которой я не смог найти решение, соответствующее моим потребностям. Поэтому я пытаюсь прочитать текстовый файл по строкам и проверить, является ли строка конкретной строкой. Если файл не содержит эту строку, он должен быть записан в файл. Это мой текущий подход к этому.Использование StreamReader & Writer в том же текстовом файле
int i = 0;
using (var sw = new StreamWriter(this.filePath))
{
foreach (SimplePlaylist playlist in myPlaylists)
{
this.PlaylistTracks[i] = new List<PlaylistTrack>();
this.PlaylistTracks[i] = GetPlaylistTracks(playlist.Owner.Id, playlist.Id);
foreach (PlaylistTrack tr in this.PlaylistTracks[i])
{
string write = tr.Track.Name + " // " + string.Join(",", tr.Track.Artists.Select(source => source.Name)) + " // " + tr.Track.Album.Id;
string line = "";
bool found = false;
using (var sr = new StreamReader(this.filePath))
{
while ((line = sr.ReadLine()) != null)
{
if (line.Equals(write))
{
found = true;
break;
}
}
sr.Close();
}
if (!found)
{
sw.WriteLine(write);
}
}
i++;
}
sw.Close();
}
Я прочитал о проблематичном чтении и записи в файл в то же самое время, но я задаюсь вопросом, есть ли способ для достижения этой цели. Любая помощь приветствуется!
Как сделать все чтение первым, создав список строк, которые нужно добавить. Затем напишите эти строки после этого. Есть ли причина, по которой чтение и письмо нужно делать вместе? – gunnerone
gunnerone, не очень хороший подход, если содержимое файла велико. Я полагаю, это цель потоковой передачи. – Tilak