StreamReader - url,ReadToEnd

时间:2015-07-16 16:58:13

标签: c#

我需要一些帮助。我在我的网站上有一个文件,我需要在我的程序中读取这个文件,做一些事情然后......我需要读另一行,所以我需要一个“同时”......等等“和”等等像这样,必须先阅读第一行,然后再读第二行等等。

以下是我需要做的示例:

我有一个文字:

Something1
Something2
Something3
Something4

好的,我需要先读第一行..做点什么..然后......读第二行(Something2)..做点什么......然后读第三行..结束。我有这段代码:

WebClient web = new WebClient();
        System.IO.Stream stream = web.OpenRead("http://example.com/subdom/prg/text.txt");

        using (System.IO.StreamReader reader = new System.IO.StreamReader(stream))
        {
            do 
            {
                String text = reader.ReadLine();
                SendLogin(text, "password", "1"); 
            }while(false);
        }

我的桌面等文件没有任何问题..但是有网站我不知道如何解决这个问题。 :/

我之前有这个:

using (StreamReader Reader = new StreamReader(@"login-mails.txt"))
            {

            while (!Reader.EndOfStream)
                {

                    string reader = Reader.ReadLine();
                    SendLogin(reader, "password", "1"); 



                }

            }

谢谢!

2 个答案:

答案 0 :(得分:0)

由于WebClient web = new WebClient(); System.IO.Stream stream = web.OpenRead("http://example.com/subdom/prg/text.txt"); using (System.IO.StreamReader reader = new System.IO.StreamReader(stream)) { while (!reader.EndOfStream) { string text = reader.ReadLine(); Console.WriteLine(text); } } 声明,您的代码无效。它将读取一行,然后转到此语句并退出。

这样的事情会起作用:

data.photosets.photoset[i].title._content

.NET Fiddle

答案 1 :(得分:0)

using (var web = new WebClient())
using (var stream = web.OpenRead("http://example.com/subdom/prg/text.txt"))  
using (var reader = new System.IO.StreamReader(stream))
{
    string line = null;
    while ( (line = reader.ReadLine()) != null) 
    {
        SendLogin(line, "password", "1");
    }
}

为了好玩,您可以将其抽象为可重复使用的方法:

public void ForEachLine(string url, Action<string> oneline)
{
    using (var web = new WebClient())
    using (var rdr = new StreamReader(web.OpenRead(url)))
    {
        string line = null
        while ( (line = rdr.ReadLine()) != null)
        {
           oneline(line);
        }
    }
}

然后你会这样称呼它:

ForEachLine("http://example.com/subdom/prg/text.txt", 
       l =>  SendLogin(l, "password", "1")
);