У меня есть файл, который содержит несколько текстовых записей, скажем
один
два
три
Теперь мне нужно удалить одну из записей, скажем "два",Я использую классы StreamReader и StreamWriter.Для того чтобы сначала удалить содержимое файла в строку, используя класс StreamReader, заменить «two \ r \ n» в строке чтения на «», а затем записать эту строку в файл, используя StreamWriter.учебный класс.Но, поскольку длина вновь записанной строки, т. Е. "One \ r \ nthree \ r \ n", меньше исходной строки, т. Е. "One \ r \ ntwo \ r \ nthree \ r \ n", первые несколько символов получаютперезаписаны, и символы ближе к концу все еще остаются там, что приводит к «one \ r \ nthree \ r \ nree \ r \ n».Кажется, простая проблема, но она застряла.Есть идеи?
Переменная user
содержит запись, которую нужно удалить.
string all = "";
using (IsolatedStorageFileStream isoStream = store.OpenFile("user_list", FileMode.Open))
{
using (StreamReader sr = new StreamReader(isoStream))
{
all = sr.ReadToEnd();
all = all.Replace(user + "\r\n", "");
}
}
using (IsolatedStorageFileStream isoStream = store.OpenFile("user_list", FileMode.Open))
{
using (StreamWriter sw = new StreamWriter(isoStream))
{
sw.Write(all);
sw.Flush();
}
}