C # - Arquivo I / O

UMA fileé 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 gravação, ele se torna umstream.

O fluxo é basicamente a sequência de bytes que passam pelo caminho de comunicação. Existem dois fluxos principais: oinput stream e a output stream. o input stream é usado para ler dados do arquivo (operação de leitura) e o output stream é usado para gravar no arquivo (operação de gravação).

Aulas C # I / O

O namespace System.IO tem várias classes que são usadas para realizar várias 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 -

Sr. Não. Classe e descrição de E / S
1

BinaryReader

Lê dados primitivos de um fluxo binário.

2

BinaryWriter

Grava dados primitivos em formato binário.

3

BufferedStream

Um armazenamento temporário para um fluxo de bytes.

4

Directory

Ajuda na manipulação de uma estrutura de diretório.

5

DirectoryInfo

Usado para executar operações em diretórios.

6

DriveInfo

Fornece informações para as unidades.

7

File

Ajuda na manipulação de arquivos.

8

FileInfo

Usado para executar operações em arquivos.

9

FileStream

Usado para ler e gravar em qualquer local de um arquivo.

10

MemoryStream

Usado para acesso aleatório a dados transmitidos armazenados na memória.

11

Path

Executa operações nas informações do caminho.

12

StreamReader

Usado para ler caracteres de um fluxo de bytes.

13

StreamWriter

É usado para escrever caracteres em um fluxo.

14

StringReader

É usado para leitura de um buffer de string.

15

StringWriter

É usado para escrever em um buffer de string.

A classe FileStream

o FileStreamclasse no namespace System.IO ajuda na leitura, gravação e fechamento de arquivos. Esta classe deriva da classe abstrata Stream.

Você precisa criar um FileStreamobjeto para criar um novo arquivo ou abrir um arquivo existente. A sintaxe para criar umFileStream 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 as shown -

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
Sr. Não. Parâmetro e Descrição
1

FileMode

o FileModeenumerator define vários métodos para abrir arquivos. Os membros do enumerador FileMode são -

  • Append - Abre um arquivo existente e coloca o cursor no final do arquivo, ou cria o arquivo, se o arquivo não existir.

  • Create - Cria um novo arquivo.

  • CreateNew - Especifica ao sistema operacional que deve criar um novo arquivo.

  • Open - Abre um arquivo existente.

  • OpenOrCreate - Especifica ao sistema operacional que deve abrir um arquivo, caso exista, caso contrário, deve criar um novo arquivo.

  • Truncate - Ele abre um arquivo existente e trunca seu tamanho para zero bytes.

2

FileAccess

FileAccess enumeradores têm membros: Read, ReadWrite e Write.

3

FileShare

FileShare enumeradores têm os seguintes membros -

  • Inheritable - Permite que um identificador de arquivo passe herança para os processos filhos

  • None - Recusa o compartilhamento do arquivo atual

  • Read - Permite abrir o arquivo para leitura.

  • ReadWrite - Permite abrir o arquivo para leitura e escrita

  • Write - Permite abrir o arquivo para escrita

Exemplo

O programa a seguir demonstra o uso do FileStream classe -

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 de arquivo avançadas 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.

Sr. Não. Tópico e Descrição
1 Ler e escrever em arquivos de texto

Envolve ler e escrever em arquivos de texto. oStreamReader e StreamWriter classe ajuda a realizá-lo.

2 Ler e gravar em arquivos binários

Envolve a leitura e a gravação em arquivos binários. oBinaryReader e BinaryWriter classe ajuda a fazer isso.

3 Manipulando o sistema de arquivos do Windows

Ele dá ao programador C # a capacidade de navegar e localizar arquivos e diretórios do Windows.