2012-10-22 147 views
6

我有一個文本文件,被另一個應用程序用作配置文件。我已經在文件的每一行讀入一個字符串數組:替換文本文件中的一行

string[] arrLine = File.ReadAllLines(pathToFile); 

它的工作原理是如何我需要它。

現在,我需要做的就是用一個字符串替換arrLine [x]的整行,覆蓋那行和那行上的內容。我寫了代碼來知道我需要替換的確切線,我只需要知道如何替換它。

我在想arrLine [x] .Replace(oldString,newString) - 如果這樣工作,我會如何將更改提交到文本文件?我是否需要重寫整個文件?我認爲只有一行需要重寫時,會對低效率方面有一點影響。

+1

只需用指定覆蓋那裏的字符串即可。無需替換。 –

回答

7

你應該能夠只分配一個元素:

arrLine[yourLineNumber] = "Foo"; 

如何將我實際提交更改到文本文件?

完成此操作後,可以使用File.WriteAllLines(pathToFile, arrLine);將數據寫回原始文件。

+0

謝謝 - 正是我需要的! – Aburley

+4

這實際上並沒有回答關鍵問題,我理解爲「是否有必要重新編寫整個文件,或者是否有辦法只替換已更改的單行文件?」像「sed for C#」就是這裏真正想要的東西。 sed本身可以從Linux中的單聲道c#程序調用Stdlib.system(「sed -i s?etc等等等等)」,但這會變得混亂。 – mickeyf

+0

好的,我只是讀了一個1.5GB的PLY點雲來改變第3行。它使用了8GB的內存。這是有道理的File.WriteSingeLine(); –