2012-07-18 43 views
0

我具有與用戶交互的控制檯應用程序(C#),並且每一步經由Console.Writeline所示。輸出/登錄Console.Read&Console.Write從控制檯應用到TXT/XML文件C#

現在我想將這些事件寫入XML或TXT,我唯一的猜測是創建一個List並將所有的Console.Writelines添加到它,但後來我注意到記錄Console.Readline是強制性的,這就是我問這個問題的原因。

如何登錄Console.Reads/Console.Writes到TXT/XML?

謝謝。

+1

你想知道如何寫一個文本文件,一個免費的測井儀???? – PaulG 2012-07-18 20:36:47

+1

每一次旅程都有一個開始... – 2012-07-18 20:39:05

回答

0

做到這一點,最簡單的方法是使用File.AppendAllText

打開一個文件,將指定字符串的文件,然後關閉該文件。如果該文件不存在,則此方法創建一個文件,將指定的字符串寫入該文件,然後關閉該文件。

像這樣的事情

string line = Console.ReadLine(); 
Console.WriteLine(line); // I gather you want to write it out again? 
File.AppendAllText(@"C:\SomePath\MyFile.txt", line); 

如果您希望首先收集所有的文本,然後將其全部寫出來,當你的程序退出時,你可以做這樣的事情:

List<string> inputLines = new List<string>(); 

// Loop here getting lines 
string line = Console.ReadLine(); 
inputLines.Add(line); 

// When done: 
File.WriteAllLines(@"C:\SomePath\MyFile.txt", inputLines.ToArray()); 

http://msdn.microsoft.com/en-us/library/92e05ft3

+0

如果MyFile.txt已經存在,那麼這隻會工作嗎? – PaulG 2012-07-18 20:38:56

+0

它會將下一行追加到文件末尾,或者如果沒有,則先創建它。看看我提供的鏈接。 – 2012-07-18 20:39:32

+0

不,我的意思是如果MyFile.txt文件在該路徑中不存在,它將不會創建它。也許他應該使用FileStream和OpenOrCreate,然後使用StreamWriter來編寫。 – PaulG 2012-07-18 20:40:20

0

我會建議你使用log4net這是.NET

+0

好主意,但它自己建立它總是更有趣。在這種情況下,這不是太多的工作和一個很好的學習經驗。 – PaulG 2012-07-18 20:42:33