我有以下代码:
void AppendText(string txt)
{
txt = txt + "\r\n";
Textbox1.AppendText(txt);
Textbox1.Select(Textbox1.Text.Length,0);
}
//....
void someFunction()
{
//...
string log = @"C:\log.txt";
using (FileStream fs = new FileStream(log, FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw.Write(Textbox1.Text);
}
}
//...
}
问题出在表单中的Textbox1.Text字段中,“\ r \ n”工作正常,但是当我将Textbox1.Text复制到log.txt时,log.txt没有新行所在的位置成为。相反,有一个奇怪的字符,如“[]”,其中“\ r \ n”是。我认为问题在于sw.Write(tbox.text)对吗?但我不知道如何解决它。有人能帮我一把吗?非常感谢帮助。提前谢谢。
答案 0 :(得分:2)
我的猜测是Textbox会创建unicode字符(每个字符两个字节)。 您以什么格式阅读数据? ASCII unicode UTF?
如果我没记错的话/ n / r是一个老字号,可以在字符串中写一个换行符,但格式是什么,这是什么意思? Environment.Newline要好得多,也适用于windows mobile / unix版本。
我通常创建一个名为br的类级变量,其中environment.newline作为其内容,创建更短的代码。
答案 1 :(得分:1)
你应该这样做。
string log = @"C:\log.txt";
using (FileStream fs = new FileStream(log, FileMode.Create))
{
using (StreamWriter sw = new StreamWriter(fs))
{
foreach(string line in Textbox1.Lines)
sw.Write(line+sw.NewLine);
}
}
答案 2 :(得分:1)
您的代码是正确的。只需在sw.Close();
sw.Write(Textbox1.Text);
即可