O C# utiliza o Stream para ler e escrever em arquivos. Sempre que uma aplicação lê ou escreve em arquivos ou liga a outro computador numa rede, envia e recebe bytes. Assim, sempre que se pretender ler ou escrever dados (bytes) num arquivo, deve ser utilizado ou criado um objeto Stream.
A classe Stream está disponível na biblioteca IO, por isso não devemos nos esquecer de a incluir no arquivo da classe.
Using System.IO;
Para criar um objeto do tipo writer devemos fazer:
StreamWriter wr = new StreamWriter(@"c:\pasta\arquivo.txt", true);
Colocar o @ antes do path do arquivo faz com que o compilador não interprete a barra “\” como sendo uma mudança de linha ou tabulação (\n ou \t), e sim como uma string.
A seguir podemos escrever no arquivo a função de escrita:
wr.WriteLine("Este é o texto a escrever no arquivo");
Não se esquecer de fechar o arquivo no final da escrita para que não fique aberto a outros programas:
wr.Close();
Para a leitura de arquivos utiliza-se o StreamReader:
StreamReader rd = new StreamReader(@"c:\pasta\ficheiro.txt");
Para melhor exemplificar, vamos criar um arquivo onde se escreverá duas linhas e, depois de escrito, vai ler essas duas linhas.
StreamWriter wr = new StreamWriter(@"c:\pasta\doc.txt", true);
wr.WriteLine("Primeira linha");
wr.WriteLine("Segunda linha");
wr.Close();
StreamReader rd = new StreamReader(@"c:\pasta\doc.txt");
while(!rd.EndOfStream){
string linha = rd.ReadLine();
Console.WriteLine(linha);
}
rd.Close();
No ciclo while, irá ler todas a linhas enquanto estas tiverem algo escrito (EndOfStream).
Tal como na escrita, também na leitura devemos fechar o arquivo com Close().
Abraços!