C # - Lendo e gravando em arquivos de texto

o StreamReader e StreamWriterclasses são usadas para ler e gravar dados em arquivos de texto. Essas classes herdam da classe base abstrata Stream, que oferece suporte à leitura e gravação de bytes em um fluxo de arquivo.

A classe StreamReader

o StreamReaderclasse também herda da classe base abstrata TextReader que representa um leitor para a leitura de uma série de caracteres. A tabela a seguir descreve algumas dasmethods da classe StreamReader -

Sr. Não. Método e Descrição
1

public override void Close()

Ele fecha o objeto StreamReader e o fluxo subjacente e libera todos os recursos do sistema associados ao leitor.

2

public override int Peek()

Retorna o próximo caractere disponível, mas não o consome.

3

public override int Read()

Lê o próximo caractere do fluxo de entrada e avança a posição do caractere em um.

Exemplo

O exemplo a seguir demonstra a leitura de um arquivo de texto denominado Jamaica.txt. O arquivo lê -

Down the way where the nights are gay
And the sun shines daily on the mountain top
I took a trip on a sailing ship
And when I reached Jamaica
I made a stop

using System;
using System.IO;

namespace FileApplication {
   class Program {
      static void Main(string[] args) {
         try {
            // Create an instance of StreamReader to read from a file.
            // The using statement also closes the StreamReader.
            using (StreamReader sr = new StreamReader("c:/jamaica.txt")) {
               string line;

               // Read and display lines from the file until 
               // the end of the file is reached. 
               while ((line = sr.ReadLine()) != null) {
                  Console.WriteLine(line);
               }
            }
         } catch (Exception e) {
            // Let the user know what went wrong.
            Console.WriteLine("The file could not be read:");
            Console.WriteLine(e.Message);
         }
         Console.ReadKey();
      }
   }
}

Adivinhe o que é exibido quando você compila e executa o programa!

A classe StreamWriter

o StreamWriter classe herda da classe abstrata TextWriter que representa um escritor, que pode escrever uma série de caracteres.

A tabela a seguir descreve os métodos mais comumente usados ​​desta classe -

Sr. Não. Método e Descrição
1

public override void Close()

Fecha o objeto StreamWriter atual e o fluxo subjacente.

2

public override void Flush()

Limpa todos os buffers do gravador atual e faz com que todos os dados em buffer sejam gravados no fluxo subjacente.

3

public virtual void Write(bool value)

Grava a representação de texto de um valor booleano na string de texto ou fluxo. (Herdado de TextWriter.)

4

public override void Write(char value)

Escreve um personagem no riacho.

5

public virtual void Write(decimal value)

Grava a representação de texto de um valor decimal na string de texto ou fluxo.

6

public virtual void Write(double value)

Grava a representação de texto de um valor de ponto flutuante de 8 bytes na string de texto ou fluxo.

7

public virtual void Write(int value)

Grava a representação de texto de um inteiro assinado de 4 bytes na string de texto ou fluxo.

8

public override void Write(string value)

Grava uma string no fluxo.

9

public virtual void WriteLine()

Grava um terminador de linha na string de texto ou fluxo.

Para uma lista completa de métodos, visite a documentação C # da Microsoft.

Exemplo

O exemplo a seguir demonstra como escrever dados de texto em um arquivo usando a classe StreamWriter -

using System;
using System.IO;

namespace FileApplication {
   class Program {
      static void Main(string[] args) {
         string[] names = new string[] {"Zara Ali", "Nuha Ali"};
         
         using (StreamWriter sw = new StreamWriter("names.txt")) {

            foreach (string s in names) {
               sw.WriteLine(s);
            }
         }
         
         // Read and show each line from the file.
         string line = "";
         using (StreamReader sr = new StreamReader("names.txt")) {
            while ((line = sr.ReadLine()) != null) {
               Console.WriteLine(line);
            }
         }
         Console.ReadKey();
      }
   }
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Zara Ali
Nuha Ali