Як додати новий рядок у файл 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();

Я хотів би відкрити файл txt, додати текст, закрити його та пізніше, натиснувши щось: відкрити date.txt, додати текст та закрити його ще раз.

Тож я можу отримати:

Натиснута кнопка: txt відкрито -> додано поточний час, а потім закрити його. Натиснуто ще одну кнопку, відкрито txt -> додано текст "ОК" або "НЕ ОК" у тому ж рядку, а потім знову закрий його.

Отже, мій файл txt буде виглядати так:

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

Як я можу це зробити? Дякую!

Відповіді:


262

Ви можете це зробити легко, використовуючи

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"- не кожна система погоджується з тим, як працюють нові рядки: en.wikipedia.org/wiki/Newline#Representations
kͩeͣmͮpͥ ͩ

4

Чому б не зробити це одним викликом методу:

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

що зробить новий рядок для вас і дозволить вам вставити відразу кілька рядків, якщо ви хочете.


Я віддаю перевагу цьому прийнятій відповіді; вам не потрібно вказувати новий рядок
twoleggedhorse

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.