C #: Usando o StreamReader para ler a linha do arquivo txt, mas Peek () retorna -1, mesmo que existam muitas linhas
Uso o método Peek () do StreamReader para verificar se há mais linhas que precisam ser processadas. Existem mais de 1000 linhas no meu arquivo, mas Peek () repentinamente retorna -1 quando atinge a linha # 750. Eu verifiquei, mas parece não haver diferenças entre a linha 750 e a 751. Mesmo excluindo as linhas 750 e 751, ele ainda será interrompido em outra linh
Abaixo estão os meus códigos para sua informação:
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();
}
Eu tenteiwhile ((x = reader.ReadLine()) != null)
, mas uma exceção de "Não é possível acessar um objeto descartado" foi lançad
Finalmente eu descobri usando:while (stream.CanRead && (x = reader.ReadLine()) != null)