Как читать и писать файл в C # - PullRequest
64 голосов
/ 03 марта 2009

Я хочу как читать, так и записывать в файл. Это не работает

static void Main(string[] args)
{
    StreamReader sr = new StreamReader(@"C:\words.txt");
    StreamWriter sw = new StreamWriter(@"C:\words.txt");
}

Как я могу читать и записывать в файл в C #?

Ответы [ 4 ]

73 голосов
/ 03 марта 2009

Вам нужен один поток, открытый как для чтения, так и для записи.

FileStream fileStream = new FileStream(
      @"c:\words.txt", FileMode.OpenOrCreate, 
      FileAccess.ReadWrite, FileShare.None);
63 голосов
/ 29 сентября 2010

Не забудьте про легкий маршрут:

    static void Main(string[] args)
    {
        var text = File.ReadAllText(@"C:\words.txt");
        File.WriteAllText(@"C:\words.txt", text + "DERP");
    }
33 голосов
/ 08 апреля 2009
var fs = File.Open("file.name", FileMode.OpenOrCreate, FileAccess.ReadWrite);
var sw = new StreamWriter(fs);
var sr = new StreamReader(fs);

...

fs.Close();
//or sw.Close();

Главное - открыть файл с флагом FileAccess.ReadWrite. Затем вы можете создать любой поток / String / Binary Reader / Writers, который вам нужен, используя начальный FileStream.

2 голосов
/ 27 июня 2012

Эта тема, кажется, отвечает на ваш вопрос: одновременное чтение-запись-файл

По сути, вам нужно объявить два FileStream, один для операций чтения, другой для операций записи. Writer Filestream должен открыть ваш файл в режиме «Добавить».

...