将文本附加到文本文件的问题?

时间:2012-11-26 22:33:22

标签: c# append streamwriter

我正在尝试编写一个代码,用户在文本框中输入交付详细信息,然后将文本添加到txt文件(记事本文本文件)。 这是我的尝试,我得到一个额外的行“,”,为什么它不将文本框中的文本添加到文本文件中?

private void FrmDelivery_Load(object sender, EventArgs e)
{
    if (theDelivery != null)
    {
        txtCustomerName.Text = theDelivery.customerName;
        txtCustomerAddress.Text = theDelivery.customerAddress;
        txtArrivalTime.Text = theDelivery.arrivalTime;      
        using (StreamWriter writer = new StreamWriter("visits.txt", true)) //true shows that text would be appended to file
        {
            writer.WriteLine(theDelivery.customerName + ", " + theDelivery.customerAddress + ", " + theDelivery.arrivalTime);
        }
    }
} 

3 个答案:

答案 0 :(得分:2)

问题是您正在Form_Load上写入文件。我假设您只想在用户更改内容时写入它。

所以你可以处理一个保存按钮的点击事件来写信给它:

private void FrmDelivery_Load(object sender, EventArgs e)
{
    if (theDelivery != null)
    {
        txtCustomerName.Text = theDelivery.customerName;
        txtCustomerAddress.Text = theDelivery.customerAddress;
        txtArrivalTime.Text = theDelivery.arrivalTime;      
    }
} 

private void btnSave_Click(object sender, System.EventArgs e)
{
    string line = string.Format("{0},{1},{2}{3}"
                , txtCustomerName.Text 
                , txtArrivalTime.Text  
                , theDelivery.arrivalTime
                , Environment.NewLine);
    File.AppendAllText("visits.txt", line);   
}

File.AppendAllText只是另一种(舒适的)写入文件的方式。

答案 1 :(得分:1)

..因为你没有把文本框的内容写到文件中..你正在编写变量(似乎没有在任何地方初始化):

修正:

writer.WriteLine(txtCustomerName.Text + ", " + txtCustomerAddress.Text + ", " + txtArrivalTime.Text); // Fixed.

另外,你在Form load上这样做..此时文本框中是否有数据(或theDelivery已初始化)?

答案 2 :(得分:0)

Delivery对象insatance的customerName,customerAddress和arrivalTime字符串属性都初始化为空字符串。在写入文件之前,应该设置一些字符串。