Cách thêm dòng mới vào tập tin txt


129

Tôi muốn thêm dòng mới bằng văn bản vào tệp date.txt của mình, nhưng thay vì thêm nó vào date.txt hiện có, ứng dụng đang tạo tệp date.txt mới ..

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

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

// close the stream
tw.Close();

Tôi muốn mở tệp txt, thêm một số văn bản, đóng tệp và sau đó sau khi nhấp vào một cái gì đó: mở date.txt, thêm văn bản và đóng lại.

Vì vậy, tôi có thể nhận được:

Nhấn nút: txt đã mở -> thêm thời gian hiện tại, sau đó đóng nó. Một nút khác được nhấn, txt đã mở -> thêm văn bản "OK" hoặc "KHÔNG OK" trong cùng một dòng, sau đó đóng lại.

Vì vậy, tệp txt của tôi sẽ trông như thế:

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

Tôi có thể làm cái này như thế nào? Cảm ơn!

Câu trả lời:


262

Bạn có thể làm điều đó một cách dễ dàng bằng cách sử dụng

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

Nếu bạn cần dòng mới

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

Dù sao nếu bạn cần mã của bạn làm điều này:

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

với thông số thứ hai nói để nối vào tập tin.
Kiểm tra ở đây cú pháp StreamWriter.


12
Nếu bạn đang sử dụng trình biên dịch c # 4 (hoặc mới hơn), bạn có thể đặt new StreamWriter("date.txt", append:true)để làm cho ý định rõ ràng hơn một chút.
kͩeͣmͮpͥ

21

Không có dòng mới:

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

và sau đó để có được một dòng mới sau OK:

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

13
Vui lòng sử dụng Environment.Newlinevà không "\r\n"- không phải mọi hệ thống đều đồng ý về cách thức hoạt động của các dòng mới: en.wikipedia.org/wiki/Newline#Repftimeations
kͩeͣmͮpͥ 24/11

4

Tại sao không làm điều đó với một cuộc gọi phương thức:

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

sẽ thực hiện dòng mới cho bạn và cho phép bạn chèn nhiều dòng cùng một lúc nếu bạn muốn.


Tôi thích điều này với câu trả lời được chấp nhận; bạn không cần chỉ định dòng mới
twoleggedhorse

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

File.AppendAllText(@"C:\Documents\m2.txt", Line + Environment.NewLine);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.