文本框中的C#-ReadLine()

文本框中的C#-ReadLine(),c#,winforms,textbox,streamreader,streamwriter,C#,Winforms,Textbox,Streamreader,Streamwriter,很抱歉我问了一些不切实际的问题,但我就是其中之一:) 我可以使用write或WriteLine编写一个.txt文件,它可以读取整个文本框。问题是当我读它的时候。我无法使用ReadLine阅读它。它把全文放在一行上。读起来一定有问题,因为在记事本中,我得到的文件是正确的 这种奇怪行为的原因是什么?我该如何改变它? 包含StreamReader的方法 StreamReader streamreader = new StreamReader(openfiledialog.FileName); tex

很抱歉我问了一些不切实际的问题,但我就是其中之一:)

我可以使用write或WriteLine编写一个.txt文件,它可以读取整个文本框。问题是当我读它的时候。我无法使用ReadLine阅读它。它把全文放在一行上。读起来一定有问题,因为在记事本中,我得到的文件是正确的

这种奇怪行为的原因是什么?我该如何改变它? 包含StreamReader的方法

StreamReader streamreader = new StreamReader(openfiledialog.FileName);

textbox.Text = "";

while (!streamreader.EndOfStream)
{
    string read_line = streamreader.ReadLine();
    textbox.Text += read_line + "\n";
}

streamreader.Close();
包含StreamWriter的方法

StreamWriter streamwriter = new StreamWriter(savefiledialog.FileName);

streamwriter.Write(textbox.Text);

streamwriter.Close();
提前谢谢


更新:ReadToEnd工作了

没有看到任何代码我最好的猜测是您在文本框和文本文件之间使用了不同的行分隔符


我猜您要么需要格式化数据,以确保数据获得正确的源分隔符,要么更改文本框的换行分隔符。

这里有两种可能性

  • 文件中的文本不是UTF-8,因此需要将其转换为UTF-8,然后分配给文本框
  • 文本框的字符限制需要增加
  • 文本框的宽度。文本的包装可能会有所不同
  • 如果希望在一次运行中获得整个文件的文本,通常会使用ReadToEnd;如果需要一行,则使用ReadLine。不同之处在于文件的编码。文本编辑器中的一行可能与另一行不同。在显示之前,有些文本编辑器将文本转换为其他编码,有些则不转换。将推荐Notepad++,因为它将在底部告诉您文件的编码,并允许您更改编码并保存文件以供测试

    net基于字符串的UTF-8编码,因此文本的ecoding差异可能会产生很大的差异


    祝你好运

    你需要显示你的代码……显示你的代码,很难理解你做错了什么好吧,非常感谢(和其他人),它确实是一个不同的行分隔符。显然,TextBox使用了RichTextBox和Label之外的其他行分隔符。正确的linesparator是\n\r而不是\n。这可能是初学者的错误。对不起。