C# - 文本框中的ReadLine()

时间:2011-11-21 21:26:33

标签: c# winforms textbox streamreader streamwriter

我很抱歉提出了无用的问题,但我是一个人:)。

我可以使用Write或WriteLine编写.txt文件,它读取整个TextBox。问题是我读它的时候。我无法使用ReadLine读取它。它将整个文本放在一行上。它必须是读数的问题,因为在NotePad中,我正确地得到了文件。

这种非常奇怪的行为是什么原因,我怎么能改变它? 包含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工作

2 个答案:

答案 0 :(得分:0)

在没有看到任何代码的情况下,我最好的猜测是你在文本框和文本文件之间使用不同的行分隔符。

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

答案 1 :(得分:0)

这里有几种可能性。

  1. 文件中的文字不是UTF-8,因此需要将其转换为UTF-8,然后分配到文本框。
  2. 文本框具有需要增加的字符限制
  3. 文本框的宽度。文字的包装可能会有所不同。
  4. 通常你会使用ReadToEnd,如果你想在一次运行中获得整个文件的文件,如果你想要1行则需要ReadLine。这里的区别在于文件的编码。 1文本编辑器中的行可能与另一行不同。在显示之前,某些文本编辑器会将文本转换为其他编码,有些则不会。会推荐Notepad ++,因为它会在底部告诉你文件的编码是什么,让你改变编码并保存文件进行测试。

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

    最好的运气