如何在不覆盖的情况下从textbox到txtfile输入多个数据

时间:2015-06-26 08:41:25

标签: c# textbox

我需要一些帮助才能在txt.file中输入数据。 这是以下代码:

StreamWriter file = new StreamWriter("opslag_kentekens");
string opslag_kentekens = textBox1.Text;
file.WriteLine(opslag_kentekens);
file.Close();

label20.Text = File.ReadAllText("opslag_kentekens");

所以当我点击我的按钮时,文本在textBox1.text中输入的内容 必须去我的opslag_kentekens.txt。这工作正常但是当想要在我的txt中输入新文本时,它会覆盖第一个输入的文本。我希望每个文本都互相输入。我该怎么做呢? (抱歉我的英语不好)。

4 个答案:

答案 0 :(得分:2)

file.WriteLine()不会保留您现有的文字。 您可以改为使用File.AppendAllText(String, String)

https://msdn.microsoft.com/en-us/library/ms143356(v=vs.110).aspx

答案 1 :(得分:1)

试试这个

new StreamWriter(" opslag_kentekens",true);

答案 2 :(得分:1)

将构造函数更改为use the append overload并将其设置为true,这应该有效。

StreamWriter file = new StreamWriter("opslag_kentekens", true);

答案 3 :(得分:1)

基本上你正在寻找附加到文件:

来自msdn

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. 
        using (StreamWriter sw = File.CreateText(path)) 
        {
            sw.WriteLine("Hello");
            sw.WriteLine("And");
            sw.WriteLine("Welcome");
        }   
    }

    // This text is always added, making the file longer over time 
    // if it is not deleted. 
    using (StreamWriter sw = File.AppendText(path)) 
    {
        sw.WriteLine("This");
        sw.WriteLine("is Extra");
        sw.WriteLine("Text");
    }   

    // Open the file to read from. 
    using (StreamReader sr = File.OpenText(path)) 
    {
        string s = "";
        while ((s = sr.ReadLine()) != null) 
        {
            Console.WriteLine(s);
        }
    }
}

通常,对于写作(不附加),使用文件写入方法更容易,因为它们更清晰,更能传达您的意思:

var some_text = "this is some text";
var out_path =  @"C:\out_example.txt";
System.IO.File.WriteAllLines(out_path, some_text);

更好更清洁,看看@Liem的答案,这是相同的,但使用正确的Append语法。