2010-10-27 59 views
0

您能否在此幫我... 我想通過應用程序(c# - .Net2005)創建一個文本文件,並且需要爲每次成功的事務更新它...我創建的文本文件,也updations成功,但新行被添加爲最後一行...但我想新增加的行應該是文本文件中的TOPMOST行...你能告訴我我怎麼能在c#中執行此操作。如何在c#中的exise文本文件頂部添加一行#

+2

這將是一個代價高昂的操作,需要爲每一個插入文件的完全重寫。你確定你不能忍受添加到文件底部的更加標準的行爲嗎? – spender 2010-10-27 11:57:00

回答

2

如果是在線更新,並在文件的開頭只有一條線留出空間,並使用

FileStream.write(buffer, 0, space_reserved_for_line); 
//be aware that this will overwrite what has been written there 

如果你想保持某種日誌文件,寫寫信給這個位置行到一個新的文件,並appen其他文件的其餘部分。這非常昂貴(performancewise)。除非你有很好的理由,否則你很可能不想這樣做。

沒有可接受的方式來編寫日誌文件,其中最上面的條目是最近的條目。

心連心

馬里奧

+0

感謝guies..for你的更新... 現在我計劃不寫一條新的線作爲最頂端的線,因爲我已經將幾個30-40 MB的文件隱藏到數據庫中......它會殺死應用程序性能... thx – Avinash 2010-10-27 12:16:32

2
string topLine = "...."; 
System.IO.File.WriteAllText("filename.blah", 
           topLine + System.Environment.NewLine + 
            System.IO.File.ReadAllText("filename.blah")); 

我個人認爲這個要求應該受到質疑。

+0

Ouuuuuuuuuuuch!想象一下,在一個大文本文件中每秒執行幾次這樣的操作。它會殺死你的文件系統。 – spender 2010-10-27 11:59:10

+0

是真的,我同意你的預訂 – 2010-10-27 12:01:21

+0

是的,但值得一提的是這個警告。 – spender 2010-10-27 12:03:15

相關問題