c filestream streamwriter
Neste tutorial, você aprenderá sobre System.IO, que é um namespace C #. Este namespace fornece classes C # como FileStream, StreamWriter, StreamReader para manipular E / S de arquivo:
c ++ referência indefinida para função de classe
Um arquivo é basicamente um objeto do sistema armazenado na memória em um determinado diretório com um nome e extensão próprios. Em C #, chamamos um arquivo de fluxo se o usarmos para escrever ou ler dados.
Neste tutorial, veremos tanto o fluxo de entrada que é usado para recuperar dados de um determinado arquivo quanto o fluxo de saída que é usado para colocar dados em um arquivo.
=> Verifique nosso guia de treinamento definitivo em C # aqui
O que você aprenderá:
Namespace System.IO
System.IO é um namespace presente no C # que contém classes que podem ser usadas para realizar diferentes operações em um determinado fluxo, como criar, editar e recuperar dados de um determinado arquivo.
Vamos dar uma olhada em algumas dessas classes.
C # FileStream
O fluxo de arquivos oferece um caminho para a execução de operações de arquivo. É usado principalmente para ler e gravar dados nos arquivos.
Exemplo para escrever em um arquivo:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); f.Close(); Console.WriteLine('File Stream closed'); } } }
Aqui, escrevemos um programa simples para escrever dados de um único byte no arquivo usando o fluxo de arquivos. Primeiramente, criamos um objeto FileStream e passamos o nome do arquivo. Em seguida, definimos o modo de arquivo para abrir ou criar. No arquivo aberto, escrevemos um único byte usando WriteByte e, por fim, fechamos tudo.
A saída é um arquivo txt com um único byte.
Exemplo para ler um arquivo
Em nosso exemplo anterior, aprendemos como escrever em um arquivo agora, vamos tentar ler o arquivo.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: '+a); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Aqui, usamos ReadByte para ler o byte do arquivo. Este comando é usado para ler um único byte do arquivo. Se você quiser ler mais dados, precisará passá-los por um loop. Em seguida, armazenamos em uma variável char, mas como o tipo de retorno nem sempre corresponderá a ReadByte, também adicionamos um cast para char.
Se executarmos este programa, a seguinte saída será observada.
Resultado
Arquivo aberto
Os dados lidos do arquivo são: F
Fluxo de arquivo fechado
C #StreamWriter
A classe StreamWriter em C # é usada para escrever caracteres em um fluxo. Ele usa a classe TextWriter como uma classe base e fornece os métodos de sobrecarga para gravar dados em um arquivo.
O StreamWriter é usado principalmente para gravar vários caracteres de dados em um arquivo.
Exemplo:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //closing stream writer s.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Depois de inicializar o objeto FileStream, também inicializamos o objeto StreamWriter usando o objeto FileStream. Em seguida, usamos o método WriteLine para escrever uma única linha de dados no arquivo. Em seguida, fechamos o StreamWriter e depois o FileStream.
A saída do código a seguir será um arquivo com dados do usuário gravados nele.
qual é a diferença entre outer join e left join
Resultado
C #StreamReader
O StreamReader é usado para ler strings ou frases grandes de um arquivo. O StreamReader também usa a classe TextReader como sua classe base e, em seguida, oferece métodos como Reading e ReadLine para ler dados do fluxo.
Exemplo de leitura de dados:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream writer sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Aqui, criamos um objeto do StreamReader usando o FileStream. Em seguida, usamos um método readline simples para ler os dados do arquivo. Fechamos o StreamReader e depois o FileStream.
O programa acima produziu o seguinte resultado:
Resultado:
Arquivo aberto
Lendo dados do arquivo
Os dados do arquivo são: Gravar dados no arquivo usando o gravador de fluxo
Fluxo de arquivo fechado
perguntas e respostas da entrevista do analista de negócios
C #TextWriter
Em C #, a classe TextWriter é escrita como uma classe abstrata. É usado para criar uma série sequencial de caracteres dentro de um arquivo. É bastante semelhante ao gravador de fluxo, que também permite ao usuário escrever caracteres sequenciais ou texto em um arquivo, mas não requer a criação de FileStream para a operação.
Exemplo para saber como funciona o TextWriter:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } Console.ReadLine(); } } }
O código acima funciona de forma semelhante ao StreamWriter. O método WriteLine grava os dados dentro do arquivo. Você pode gravar vários dados no arquivo usando vários métodos WriteLine dentro do bloco de instrução using.
A saída criará um arquivo de texto com o texto definido pelo usuário.
Resultado:
C #TextReader
Leitor de texto é outra classe encontrada em System.IO. É usado para ler texto ou qualquer caractere sequencial de um determinado arquivo.
Exemplo:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
No programa acima, usamos TextReader para abrir um arquivo que é mantido em um local específico. Em seguida, declaramos uma variável de string para armazenar os dados do arquivo. O método ReadToEnd garante que todos os dados dentro do arquivo foram lidos. Depois disso, imprimimos os dados no console.
O resultado do programa acima será:
A primeira linha com redator de texto
Conclusão
O namespace System.IO dentro do C # oferece várias classes e métodos para permitir que os programadores executem operações de leitura e gravação em arquivos diferentes. System.IO contém várias classes como FileStream, StreamReader, StreamWriter, TextReader, TextWriter etc.
Todas essas classes fornecem uma implementação específica para as operações de leitura e gravação no arquivo, dependendo do requisito.
Amostra de Código
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: ' + a); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
=> Assista à série completa de treinamento C # aqui
Leitura recomendada
- Manipulação de arquivos no Unix: Visão geral do sistema de arquivos Unix
- Caracteres especiais do Unix ou metacaracteres para manipulação de arquivos
- Permissões de acesso a arquivos Unix: Unix Chmod, Chown e Chgrp
- Objetos de arquivo VBScript: CopyFile, DeleteFile, OpenTextFile, Read and Write Text File
- Operações de entrada de arquivo e saída em C ++
- Implantação Java: Criação e execução de arquivo JAR Java
- Como comparar dois arquivos no Unix: Comandos de comparação de arquivos
- Scripting Unix Shell Avançado: Arrays, Operadores de Teste de Arquivo e String, Variáveis Especiais