我有一個文本文件,我需要在遇到特定行後添加一些行。如何將行插入文本文件的中間?
我試圖做一個流對象,然後從文件中讀取,直到我得到搜索文本,然後通過設置其光標位置寫入相同的流,但它不起作用。
有沒有辦法做到這一點?
我有一個文本文件,我需要在遇到特定行後添加一些行。如何將行插入文本文件的中間?
我試圖做一個流對象,然後從文件中讀取,直到我得到搜索文本,然後通過設置其光標位置寫入相同的流,但它不起作用。
有沒有辦法做到這一點?
這裏是你如何能追加在文件的中間部分原文:
var sb = new StringBuilder();
using (var sr = new StreamReader("inputFileName"))
{
string line;
do
{
line = sr.ReadLine();
sb.AppendLine(line);
} while (!line.Contains("<Sim Properties>"));
sb.Append(myText);
sb.Append(sr.ReadToEnd());
}
using (var sr = new StreamWriter("outputFileName"))
{
sr.Write(sb.ToString());
}
這將後插入myText
包含<Sim Properties>
行。
感謝弗拉德這可能只是解決我的問題:) –
以下代碼示例演示瞭如何使用WriteAllLines方法將文本寫入文件。在這個例子中,一個文件被創建,如果它不存在,並且文本被添加到它。
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
// This text is added only once to the file.
if (!File.Exists(path))
{
// Create a file to write to.
string[] createText = { "Hello", "And", "Welcome" };
File.WriteAllLines(path, createText);
}
// This text is always added, making the file longer over time
// if it is not deleted.
string appendText = "This is extra text" + Environment.NewLine;
File.AppendAllText(path, appendText);
// Open the file to read from.
string[] readText = File.ReadAllLines(path);
foreach (string s in readText)
{
Console.WriteLine(s);
}
}
}
I實際上要根據文件中是否存在「
感謝您的輸入而在文件中間添加行,但需要在文件中添加新行, Sim屬性>「在文件中遇到:) –
顯示您的代碼,我們會盡力提供幫助。如果你只是想知道如何寫入文本文件,你應該嘗試谷歌,甚至搜索這個網站。這已經被記錄了100萬次以上。 – JohnFx
可能重複的[如何在C#中編寫文本文件](http://stackoverflow.com/questions/1919552/how-to-write-a-text-file-in-c-sharp) – JohnFx
你需要替換已經在文件中的文本,或者只是在它的中間插入一些新的文本? – vlad