C# - E/S de arquivo
Um arquivo é uma coleção de dados armazenados em um disco com um nome específico e um caminho de diretório. Quando um arquivo é aberto para leitura ou escrita, ele se torna um fluxo .
O fluxo é basicamente a sequência de bytes que passa pelo caminho de comunicação. Existem dois fluxos principais:o fluxo de entrada e o fluxo de saída . O fluxo de entrada é usado para ler dados do arquivo (operação de leitura) e o fluxo de saída é usado para escrever no arquivo (operação de gravação).
Aulas de E/S C#
O namespace System.IO tem várias classes que são usadas para realizar inúmeras operações com arquivos, como criar e excluir arquivos, ler ou gravar em um arquivo, fechar um arquivo etc.
A tabela a seguir mostra algumas classes não abstratas comumente usadas no namespace System.IO −
| Nº Sr. | Classe e descrição de E/S |
|---|---|
| 1 | Leitor Binário Lê dados primitivos de um fluxo binário. |
| 2 | BinaryWriter Grava dados primitivos em formato binário. |
| 3 | Stream em buffer Um armazenamento temporário para um fluxo de bytes. |
| 4 | Diretório Ajuda na manipulação de uma estrutura de diretórios. |
| 5 | Informações do diretório Usado para executar operações em diretórios. |
| 6 | Informações do Drive Fornece informações para as unidades. |
| 7 | Arquivo Ajuda na manipulação de arquivos. |
| 8 | Informações do arquivo Usado para realizar operações em arquivos. |
| 9 | FileStream Usado para ler e gravar em qualquer local em um arquivo. |
| 10 | MemoryStream Usado para acesso aleatório a dados transmitidos armazenados na memória. |
| 11 | Caminho Executa operações em informações de caminho. |
| 12 | Leitor de fluxo Usado para ler caracteres de um fluxo de bytes. |
| 13 | StreamWriter É usado para gravar caracteres em um fluxo. |
| 14 | Leitor de seqüências É usado para leitura de um buffer de string. |
| 15 | StringWriter É usado para gravar em um buffer de string. |
A classe FileStream
O FileStream class no namespace System.IO ajuda na leitura, gravação e fechamento de arquivos. Essa classe deriva da classe abstrata Stream.
Você precisa criar um FileStream objeto para criar um novo arquivo ou abrir um arquivo existente. A sintaxe para criar um FileStream objeto é o seguinte -
FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
Por exemplo, criamos um objeto FileStream F para ler um arquivo chamado sample.txt conforme mostrado −
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
FileShare.Read);
| Nº Sr. | Parâmetro e descrição |
|---|---|
| 1 | Modo de arquivo O Modo Arquivo enumerator define vários métodos para abrir arquivos. Os membros do enumerador FileMode são −
|
| 2 | Acesso a Arquivo Acesso a Arquivo enumeradores têm membros:Ler , LerGravar e Escrever . |
| 3 | Compartilhamento de arquivos Compartilhamento de arquivos enumeradores têm os seguintes membros -
|
Exemplo
O programa a seguir demonstra o uso do FileStream classe -
Demonstração ao vivo
using System;
using System.IO;
namespace FileIOApplication {
class Program {
static void Main(string[] args) {
FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate,
FileAccess.ReadWrite);
for (int i = 1; i <= 20; i++) {
F.WriteByte((byte)i);
}
F.Position = 0;
for (int i = 0; i <= 20; i++) {
Console.Write(F.ReadByte() + " ");
}
F.Close();
Console.ReadKey();
}
}
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
Operações avançadas de arquivo em C#
O exemplo anterior fornece operações de arquivo simples em C#. No entanto, para utilizar os imensos poderes das classes C# System.IO, você precisa conhecer as propriedades e métodos comumente usados dessas classes.
| Nº Sr. | Tópico e descrição |
|---|---|
| 1 | Ler e escrever em arquivos de texto Envolve ler e escrever em arquivos de texto. O StreamReader e StreamWriter classe ajuda a realizá-lo. |
| 2 | Ler e escrever em arquivos binários Envolve ler e escrever em arquivos binários. O BinaryReader e BinaryWriter classe ajuda a fazer isso. |
| 3 | Manipulação do sistema de arquivos do Windows Dá a um programador C# a capacidade de navegar e localizar arquivos e diretórios do Windows. |
Linguagem C