Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Tutorial de fluxo C#:StreamReader, StreamWriter com exemplo


Em operações de arquivo C#, normalmente os fluxos são usados ​​para ler e gravar em arquivos. Um fluxo é uma camada adicional criada entre um aplicativo e um arquivo. O fluxo é usado para garantir operações de leitura e gravação suaves no arquivo.

Os fluxos são normalmente usados ​​ao ler dados de arquivos grandes. Ao usar fluxos, os dados de arquivos grandes são divididos em pequenos pedaços e enviados para o fluxo. Esses pedaços de dados podem ser lidos do aplicativo.

A razão para dividi-lo em pequenos pedaços é por causa do impacto no desempenho de ler um arquivo grande de uma só vez. Se você ler os dados de, digamos, um arquivo de 100 MB de uma só vez, seu aplicativo pode simplesmente travar e ficar instável. A melhor abordagem é usar fluxos para dividir o arquivo em partes gerenciáveis.

Portanto, quando uma operação de gravação é realizada no arquivo, os dados a serem gravados são gravados primeiro no fluxo. A partir do fluxo, os dados são gravados no arquivo. O mesmo vale para a operação de leitura. Na operação de leitura, os dados são transferidos primeiro do arquivo para o fluxo. Os dados são então lidos do aplicativo por meio do fluxo. Vejamos um exemplo de como podemos ler e escrever usando fluxos.

Neste tutorial, você aprenderá-

Leitor de fluxo


O leitor de fluxo é usado para ler dados de um arquivo usando fluxos. Os dados do arquivo são lidos primeiro no fluxo. Depois disso, o aplicativo lê os dados do fluxo.

Para nosso exemplo, vamos supor que temos um arquivo na unidade D chamado Example.txt. O arquivo será um arquivo de texto simples e terá 2 linhas como mostrado abaixo

Para nosso exemplo, criaremos um aplicativo de console simples e trabalharemos com fluxos de arquivos

Vejamos um exemplo de como podemos usar fluxos para ler dados de um arquivo. Digite o código abaixo no arquivo program.cs.


using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";

    using (StreamReader sr = File.OpenText(path))
    {
     String s = "";

     while ((s = sr.ReadLine()) != null)
     {
      Console.WriteLine(s);
     }
    }
   Console.ReadKey();
  }
 }
}

Explicação do código:-
  1. Primeiro, estamos declarando um objeto leitor de fluxo. O objeto leitor de fluxo é usado em C# para definir um fluxo do arquivo para o aplicativo. Os dados serão enviados do arquivo para o fluxo sempre que os dados forem lidos do arquivo. O File.OpenText é usado para abrir o arquivo “Example.txt” em modo somente leitura. O manipulador para o arquivo é então enviado para o objeto leitor de fluxo.
  2. Em seguida, estamos definindo uma variável temporária 's' que será usada para ler todos os dados do arquivo.
  3. Em seguida, usamos o método de leitura de fluxo ReadLine para ler cada linha do buffer de fluxo. Quando realizamos esta operação, cada linha será primeiramente transferida do arquivo para o buffer. Então a linha de string será transferida do buffer para a variável ‘s’. Em seguida, escrevemos o conteúdo da string 's' no console.

Quando o código acima estiver definido e o projeto for executado usando o Visual Studio, você obterá a saída abaixo.

Saída:-



A partir da saída, você pode ver que o Stream Reader lê ambas as linhas do arquivo. Por fim, as linhas da string lidas do stream foram enviadas para o Console.

Gravador de fluxo


O gravador de fluxo é usado para gravar dados em um arquivo usando fluxos. Os dados do aplicativo são primeiro gravados no fluxo. Depois disso, o fluxo grava os dados no arquivo. Vejamos um exemplo de como podemos usar fluxos para gravar dados de um arquivo. Digite o código abaixo no arquivo program.cs.


using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";
    
    using (StreamWriter sr = File.AppendText(path))
    {
     sr.WriteLine("Guru99 - ASP.Net");
     sr.Close();

     Console.WriteLine(File.ReadAllText(path));
    }
    Console.ReadKey();
  }
 }
}

Explicação do código:-
  1. Primeiro, estamos declarando um objeto de gravação de fluxo. O objeto gravador de fluxo é usado em C# para definir um fluxo. O fluxo é então usado para gravar dados do aplicativo no arquivo. Os dados serão enviados do aplicativo para o fluxo sempre que os dados precisarem ser gravados. O comando File.AppendText é usado para abrir o arquivo “Example.txt” em modo de acréscimo. O manipulador para o arquivo é então enviado para o objeto gravador de fluxo.
  2. Estamos usando o método de gravação de stream Writeline para gravar a linha “Guru99 – ASP.Net” no stream. A partir do fluxo, a linha será gravada no arquivo.
  3. Em seguida, fechamos o gravador de fluxo após gravar no arquivo. Normalmente, é uma boa prática fechar manipuladores de arquivos quando o arquivo não é mais necessário para fins de gravação.
  4. Finalmente, estamos lendo o conteúdo do arquivo novamente e gravando-o no log do console. Isso é para verificar se a linha foi gravada no arquivo.

Quando o código acima estiver definido e o projeto for executado usando o Visual Studio, você obterá a saída abaixo.

Saída:-



A partir da saída, você pode ver que a linha “Guru99 – ASP.Net” foi adicionada ao arquivo com sucesso. Todas as 3 linhas de texto podem ser vistas no console.

Resumo


Linguagem C

  1. C++ For Loop com EXEMPLO
  2. Instrução C++ Switch Case com EXEMPLO
  3. Alocação dinâmica de matrizes em C++ com exemplo
  4. Entrada/saída básica de C++:Cout, Cin, Cerr Exemplo
  5. Empilhar em C++ STL com exemplo
  6. Estrutura C++ com exemplo
  7. std::list em C++ com exemplo
  8. Tutorial de classe abstrata C# com exemplo:O que é abstração?
  9. Tutorial de coleções de C# com exemplos
  10. Java BufferedReader:Como Ler Arquivo em Java com Exemplo