C#: l'Utilisation de StreamReader pour lire ligne à partir d'un fichier txt, mais Peek() renvoie -1, même il ya beaucoup de lignes à gauche

Je utiliser Peek() la méthode de StreamReader pour vérifier si il y a plus de lignes à traiter. Il y a plus de 1000 lignes dans mon fichier, mais Peek() soudainement de retour -1 quand il atteint la ligne#750. J'ai vérifié mais la semble pas de différences entre la ligne#750 et n ° 751. Même que j'ai supprimé la ligne#750 et 751, il sera toujours en pause jusqu'à l'autre ligne.

Ci-dessous sont mes codes pour votre information:

try
{
    String ftpserver = ftp + filename;
    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpserver));
    reqFTP.UsePassive = false;
    reqFTP.UseBinary = true;
    reqFTP.Proxy = null;
    reqFTP.Credentials = new NetworkCredential(username, password);

    reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
    response = (FtpWebResponse)reqFTP.GetResponse();
    stream = response.GetResponseStream();
    reader = new StreamReader(stream, ConfigHelper.MyEncoding);
    while (reader.Peek() > -1)
    {
        string x = reader.ReadLine();
        if (x != null)
        {
          //.......
         }
    }
}
catch (Exception ex)
{
}
finally
{
    if (reader != null)
        reader.Close();
    if (response != null)
        response.Close();
}

J'ai essayé while ((x = reader.ReadLine()) != null), mais une exception de "Impossible d'accéder à un objet supprimé" a été jeté.

Enfin j'ai tout compris à l'aide de:
while (stream.CanRead && (x = reader.ReadLine()) != null)

Merci de poster le code que vous utilisez, il est difficile de commenter autrement.

OriginalL'auteur Alan | 2012-02-21