Как добавить новую строку в txt файл


129

Я хотел бы добавить новую строку с текстом в мой файл date.txt, но вместо добавления ее в существующий date.txt приложение создает новый файл date.txt ..

TextWriter tw = new StreamWriter("date.txt");

// write a line of text to the file
tw.WriteLine(DateTime.Now);

// close the stream
tw.Close();

Я хочу открыть текстовый файл, добавить текст, закрыть его, а затем, щелкнув что-нибудь: открыть date.txt, добавить текст и снова закрыть его.

Так я могу получить:

Нажата кнопка: txt открыт -> добавлено текущее время, затем закройте. Нажата еще одна кнопка, открыт txt -> в той же строке добавлен текст «ОК» или «НЕ ОК», затем снова закрыть.

Итак, мой текстовый файл будет выглядеть так:

2011-11-24 10:00:00 OK
2011-11-25 11:00:00 NOT OK

Как я могу это сделать? Спасибо!

Ответы:


263

Вы могли бы легко сделать это, используя

File.AppendAllText("date.txt", DateTime.Now.ToString());

Если вам нужна новая строка

File.AppendAllText("date.txt", 
                   DateTime.Now.ToString() + Environment.NewLine);

В любом случае, если вам нужен ваш код, сделайте это:

TextWriter tw = new StreamWriter("date.txt", true);

со вторым параметром, говорящим о добавлении в файл.
Проверьте здесь синтаксис StreamWriter.


12
Если вы используете компилятор C # 4 (или новее), вы можете new StreamWriter("date.txt", append:true)сделать цель более ясной.
kͩeͣmͮpͥ ͩ

21

Нет новой строки:

File.AppendAllText("file.txt", DateTime.Now.ToString());

а затем получить новую строку после ОК:

File.AppendAllText("file.txt", string.Format("{0}{1}", "OK", Environment.NewLine));

13
Пожалуйста, используйте, Environment.Newlineа не "\r\n"- не все системы согласны с тем, как работают
новые

4

Почему бы не сделать это с помощью одного вызова метода:

File.AppendAllLines("file.txt", new[] { DateTime.Now.ToString() });

который сделает за вас новую строку и позволит вам вставить сразу несколько строк, если хотите.


Я предпочитаю это принятому ответу; новую строку указывать не нужно
двуногая лошадь

0
var Line = textBox1.Text + "," + textBox2.Text;

File.AppendAllText(@"C:\Documents\m2.txt", Line + Environment.NewLine);
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.