Работа с файлами в C#
Приложение работает с одним файлом.
Во время работы в этот файл могут что то записывать, приложению надо это считывать из файла. Вся суть проблемы реализовать и считывание и запись в произвольное время.
Как реализовывал:
FileStream fs;
StreamWriter written;
StreamReader reader;
fs = new FileStream("Listing.txt",
FileMode.Create,
FileAccess.ReadWrite,
FileShare.ReadWrite);
written = new StreamWriter(fs);
reader = new StreamReader(fs);
public void Push(string simpletext)
{
written.WrieLin(simpletext);
}
public void Out()
{
written.Flush();
reader.ReadLin();
}
При попытке считать, он мне ничего не считывает.
Кто знает как решить эту проблему?
во первых, оформи код в соответствии с правилами форума. во вторых, дело в том, что чтение начинается с конца файла, так как после операции записи текущая позиция в потоке будет в конце, тебе надо перед чтением перейти к началу файла, кажись метод Seek();. в третьих, тут тебе кажись нужны методы асинхронного чтения записи, читай в мздн.
Учитывая FileMode.Create, файл будет каждый раз создаваться заново (при запуске программы, или смотря где стоит этот код). Следовательно, данные вовсе не должны сохраняться между запусками программы. Следовательно, от файла можно отказаться, и использовать какую-нибудь коллекцию. Имхо, в данном случае лучше всего будет очередь System.Collections.Generic.Queue<string>. Единственным ограничением может служить большой объём временно хранимых данных (гигабайты).