2011-11-30 49 views
0
private void btnDump_Click(object sender, EventArgs e) 
{ 
    using (StreamWriter sw = new StreamWriter("E:\\TestFile.txt")) 
    { 
     // Add some text to the file. 
     sw.WriteLine(txtChange.Text); 
    } 
} 

这会将txtChange的文本转储为文本文件。 txtChange是一个富文本框,并在其中包含换行符(换行符)。将文本转储到带有换行符的文件

当用户单击转储按钮时,所有文本都被转储,但不在新行中。

例如txtChange看起来像

1 
2 
3 
4 

倾销文字看起来像1234

我如何格式化文本的倾倒,使文字在新的生产线?简短而中肯 - 因为File类包含这些静态便捷方法

File.WriteAllLines(@"E:\TestFile.txt", txtChange.Lines); 

你并不真的需要使用流:

回答

10

您应该使用Lines属性。

以上将用您的文本框txtChange中包含的文本行替换任何现有的内容。如果您想要附加内容,请改用适当名称的File.AppendAllLines()

+1

干脆,写也应该工作。 – hungryMind

+0

@hungryMind:这听起来也符合逻辑,但是在反射器中查看'WriteLine'我并不认为它正在进行任何折叠。 – Sorpigal

+0

@BrokenGlass这工作正常,我刚刚尝试添加另一个文本框的内容,但这覆盖从txtChange采取的文本,你知道命令添加文本('复制'在新行以及)? – Dan1676

3

只需添加一个新行字符:

private void btnDump_Click(object sender, EventArgs e) 
{ 
    using (StreamWriter sw = new StreamWriter("E:\\TestFile.txt")) 
    { 
     // Add some text to the file. 
     sw.WriteLine(txtChange.Text + "\r\n"); 
    } 
} 
+1

这只会在最后添加一个换行符 – BrokenGlass

1

如果它包含\ r是如你所说,你应该试试这个

using (StreamWriter sw = new StreamWriter("E:\\TestFile.txt")) 
{ 
    // Add some text to the file. 
    sw.WriteLine(txtChange.Text.Replace("\r", "\r\n"); 
} 
0

你也可以这样做:

private void btnDump_Click(object sender, EventArgs e) 
{ 
    using (StreamWriter sw = new StreamWriter("E:\\TestFile.txt")) 
    { 
     // Add some text to the file. 
     sw.WriteLine(txtChange.Text + Environment.NewLine); 
    } 
} 
相关问题