2011-06-18 45 views
4

下面的方法會覆蓋輸出文件(process.txt)嗎?C# - 使用File.WriteAllLines

private static void CompareOrig() 
{ 

    File.WriteAllLines("process.txt", 
    File.ReadAllLines("process2.txt").Except(File.ReadAllLines("process.txt"))); 

} 

新增信息:

的問題是,當線路從process2.txt讀取,它們被寫入process.txt文件,因此覆蓋該文件中的所有現有數據。相反,我如何將輸出附加到process.txt?例如

File.AppendAllText("process.txt") 
+1

由於這是非常簡單的 - 你爲什麼不自己嘗試一下? 如果是這樣的話,也許讀取所有行到變量,然後重寫和新的數據? –

+1

AppendAllText,AppendAllLines是現有的方法。 –

+0

@亨克Holterman謝謝,我用AppendAllLines – James

回答

4

請問下面方法覆蓋輸出文件(process.txt)?

如果是這樣,這怎麼能避免?

使用另一個文件名進行寫入。

如果您的意思是「它會在被完全讀取之前被覆蓋」,那麼答案是否定的,您沒有問題。

但是用一個或兩個變量分割它會使它更具可讀性。如果它讓你懷疑,那麼它會使讀者。一遍又一遍地。

+0

謝謝,我怎麼可以「添加」或追加文件? – James

+0

是關於完成文件I/O或關於微妙的C#序列問題的問題嗎?請清楚。在你的問題下有一個_Edit_鏈接。 –

+0

嗨,我已經更新它來澄清問題多一點 – James

-1

有點舊,但對於任何人閱讀。 如果你只想追加到現有的文件使用。

File.WriteLine("Text"); 

代替

File.WriteAllLines("Text);