Я пытаюсь удалить определенную строку из файла на IsolatedStorage, но я до сих пор получающего «поток не записываемый» из следующего метода:поток не был записываемые (StreamWriter)
public async static void RemoveFavoriteFromFile(int id)
{
string favoriteFilename = Globals.FavoriteFilepath;
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
var folder = await local.GetFolderAsync("DataFolder");
var file = await folder.OpenStreamForReadAsync(Globals.FavoriteFilepath);
using (StreamReader sr = new StreamReader(file))
{
using (StreamWriter sw = new StreamWriter(file))
{
string line = null;
while ((line = sr.ReadLine()) != null)
{
if (String.Compare(line, id.ToString()) == 0)
continue;
sw.WriteLine(line);
}
}
}
}
на линии using (StreamWriter sw = new StreamWriter(file))
Может ли кто-нибудь помочь мне, пожалуйста?
Заранее спасибо
EDIT: я главным образом прошу Вас посоветовать мне, как удалить определенную строку из не существующего файла, независимо от того, что я создал уже. Основная проблема для меня в понимании заключается в том, что как писать/редактировать файл, который мне в первую очередь нужно прочитать для поиска конкретной строки.
Вы не можете читать и писать из/в текстовый поток одновременно, содержимое файла будет безнадежно перепутано. Имя «OpenStreamForReadAsync» должно принести этот пункт домой, этот поток доступен только для чтения. Не пытайтесь найти метод «OpenStreamForReadWriteAsync», его не существует. –
«Почему, когда я открываю поток только для чтения, я не могу написать ему», на самом деле не отвечает на вопрос в терминах, приемлемых для SO. Просьба уточнить, какую дополнительную информацию вам нужно понять, что сообщение об ошибке. Если вы ищете помощь в удалении строки - пожалуйста, обновите свой вопрос, чтобы он ясно понял, с чем вам нужна помощь, и что вы пробовали. –
Спасибо, ребята, за разъяснения. Я отредактировал мою статью о происхождении с дополнительным вопросом. –