从网站下载文本文件会忽略新行

时间:2016-05-09 04:36:26

标签: c# httpwebrequest webclient httpwebresponse

我正在尝试从网站下载文本文件(changelog)并将其写入C#中的组件。

我尝试了listbox,listview,textbox,但我认为这不重要。新线被完全忽略,它在所有数据中直接显示为1行。

我尝试了以下方法:

var web = (HttpWebRequest)WebRequest.Create("http://somesite.com/changelog.txt");
web.Method = "GET";

using (var res = new StreamReader(web.GetResponse().GetResponseStream()))
{
    textBox1.Text = res.ReadToEnd();
}

using (WebClient wc = new WebClient())
{
    string changelog = wc.DownloadString("http://somesite.com/changelog.txt");
    textBox1.Text = changelog;
}

这两种方法都返回了所有数据的1行。我需要新的线条,所以我可以在textBox中使用它,并让它看起来正确。现在它在一行中非常混乱且难以理解。

示例changelog.txt内容:

1.0.1.2
- Initial release

1.0.0.3
- Initial release

1.0.0.2
- Initial release
- Initial release
- Initial release

1.0.0.1
- Initial release
- Initial release
- Initial release

1.0.0.0
- Initial release

通过在.Replace("\n", "\r\n");

末尾添加textBox1.Text = res.ReadToEnd();来解决此问题

textBox1.Text = res.ReadToEnd().Replace("\n", "\r\n");

1 个答案:

答案 0 :(得分:0)

你可以这样做:

var web = (HttpWebRequest)WebRequest.Create("http://somesite.com/changelog.txt");        
web.Method = "GET";    
using (var res = new StreamReader(web.GetResponse().GetResponseStream()))
{
    string line="";
    while ((line=res.ReadLine())!=null)
    {
        textBox1.AppendText(line+System.Environment.NewLine);
    }
}