arquivos. 2 namespace system.io toda as classes relacionadas com dispositivos de entrada e saída...

45
Arquivos

Upload: internet

Post on 17-Apr-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

Arquivos

Page 2: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

2

Namespace System.IO

• Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO

• Incluir no início do programa:

using System.IO;

Page 3: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

3

Classe File e FileInfo

• Classe File apresenta apenas métodos estáticos

• Classe FileInfo representa um arquivo em particular

Page 4: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

4

Classes Directory e DirectoryInfo

• Classe Directory apresenta apenas métodos estáticos

• Classe DirectoryInfo representa um arquivo em particular

Page 5: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

5

Streams (Fluxos)

• Representa um fluxo de informações

• A origem e o destino são escondidos do programador (ele só precisa escrever e ler do stream – o stream estará associado a um arquivo)

Page 6: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

6

Diferenças entre arquivos texto e binários

• Arquivos textos contêm dados textuais que são geralmente criados através da adição de cadeia de caracteres (strings). Todas as linhas de um arquivo texto terminam com um caractere de newline (nova linha). No Windows, a representação do newline é o caracter '\n' representado como uma combinação de retorno de carro (carriage return) e pula linha (line feed)

• Arquivos binários contém a representação binária dos dados. Suponha que queiramos gravar o valor de uma variável inteira que possua o número 50 armazenado nela. Como cada inteiro ocupa 4 bytes, teríamos a gravação do número 32 00 00 00 (50 = 0x32)

Page 7: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

7

Hierarquia de Classes

System.Object

System.IO.Directory

MarshallByRefObject

System.FileSystemInfo

System.IO.FileInfo

System.IO.DirectoryInfo

System.IO.File

System.IO.Path

Page 8: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

8

Hierarquia de Classes

• System.Object– System.MarshallByReference

• System.IO.Stream– System.IO.BufferedStream– System.IO.MemoryStream– System.IO.FileStream

• System.IO.TextReader– System.IO.StreamReader– System.IO.StringReader

• System.IO.TextWriter– System.IO.StreamWriter– System.IO.StringWriter

– System.IO.BinaryWriter– System.IO.BinaryReader

Page 9: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

9

Arquivos Texto

Classes:

• StreamReader usada para leitura de arquivo texto

• StreamWriter usada para escrita de arquivo texto

Page 10: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

10

Arquivos Binários

Classes

• BinaryReader leitura de arquivo binário

• BinaryWriter gravação de arquivo binário

Page 11: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

11

Arquivo

• Nome: nome do arquivo

• Modo: criação, abertura, abertura ou criação

• Tipo de Acesso: leitura, escrita, leitura / escrita

Page 12: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

12

Enumerações FileMode e FileAccess

FileMode

FileMode.Append

FileMode.Create

FileMode.CreateNew

FileMode.Open

FileMode.OpenOrCreate

FileMode.Truncate

FileAccess

FileAccess.Read

FileAccess.Write

FileAccess.ReadWrite

Page 13: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

13

Conjuntos de caracteres

• ASCII

• Unicode

• UTF7 formato Unicode de 7 bits

• UTF-8 é um formato Unicode de 8 bits que é compatível com o conjunto de caracteres ASCII

Page 14: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

14

Classe FileStream

• FileStream(string nome, FileMode modo, FileAccess acesso)

onde:

nome: nome do arquivo

modo: append, create, createNew, open, OpenOrCreate, Truncate

acesso: read, write, ReadWrite

Page 15: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

15

Enum FileMode

Especifica como o Sistema Operacional deve abrir um arquivo.

• FileMode.Append• FileMode.Create• FileMode.CreateNew• FileMode.Open• FileMode.OpenOrCreate• FileMode.Truncate

Page 16: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

16

Enum FileMode

• Append abre o arquivo, se ele existir e vai até seu final ou cria um novo arquivo

• Create SO deve cria um novo arquivo. Se o arquivo já existir ele será sobreescrito

• CreateNew SO deve criar novo arquivo• Open SO deve abrir um arquivo existente. Uma

exceção será lançada se o arquivo não existir• OpenOrCreate SO deve abrir o arquivo se ele existir.

Caso contrário, um novo arquivo será criado• Truncate SO deve abrir um arquivo existente. Uma

vez aberto, ele será truncado de forma a ter 0 bytes

Page 17: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

17

Enum FileAccess

Define constantes para leitura, escrita e leitura/escrita

• FileAccess.Read

• FileAccess.Write

• FileAccess.ReadWrite

Page 18: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

18

Exemplos

• Criação de um arquivo de log; dados são anexados ao final do arquivo; se o arquivo não existir ele será criado

Exemplo:

FileStream log = new FileStream("log.txt",FileMode.Append,FileAccess.Write);

Page 19: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

19

Leitura e Escrita de Arquivos Texto

• StreamReader leitura de um arquivo texto

• StreamWriter escrita de um arquivo texto

Page 20: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

20

Gravação de um arquivo texto

• abertura do arquivo para escrita

• escrita das informações

• fechamento do arquivo

Page 21: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

21

Exemplo de Escrita FileStream arq = new FileStream("tabuada.txt", FileMode.Create); StreamWriter writer = new StreamWriter(arq);

writer.WriteLine("Tabuada"); writer.WriteLine(); for (int i = 1; i < 10; i++) { for (int j = 1; j <= 10; j++) { writer.WriteLine("{0,2} x {1,2} = {2,2}", i, j, i * j); } writer.WriteLine(); }

writer.Close();

arq.Close();

Page 22: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

22

Leitura de um arquivo texto

• abertura do arquivo para leitura

• leitura das informações

• fechamento do arquivo

Page 23: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

23

Exemplo de Leitura FileStream arq = new FileStream("tabuada.txt", FileMode.Open); StreamReader reader = new StreamReader(arq);

string linha;

do { linha = reader.ReadLine(); if (linha != null) { Console.WriteLine(linha); } } while (linha != null);

reader.Close();

arq.Close();

Page 24: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

24

Arquivos Binários

• Leitura de um arquivo binário

• Escrita de um arquivo binário

Page 25: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

25

Classe StringBuffer

• Representa uma cadeia de caracteres que poderá ser modificada

Exemplo:StringBuilder sb = new StringBuilder();sb.Append("a"); // asb.Append("b"); // abint i = 5;sb.AppendFormat("{0,4:X2}",i);

Page 26: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

26

Exemplo – File.Exists()using System;using System.IO;

class Test{ public static void Main() { string origem = @"c:\tests\Test.txt"; string destino = @"c:\tests\Test2.txt"; if (File.Exists(origem)) {

File.Copy(origem, destino);

} else { Console.WriteLine("Arquivo orugem não existe.");

} }}

Page 27: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

27

File – alguns métodos• AppendAllText()• AppendText• Copy• Create• CreateText• Delete• Exists• GetCreationTime• Move• Open• OpenRead• OpenText• OpenWrite

Page 28: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

28

Directory – Alguns métodos

• CreateDirectory• Delete• Exists• GetCreationTime• GetCurrentDirectory• GetFiles• GetLastAccesTime• GetLastWriteTime• GetParent• Move• SetCreationTime• SetLastWriteTime

Page 29: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

29

BACKUP

Page 30: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

30

Comandos de Formatação do Código

• Para formatar o código– Edit / Advanced / Format Document– Tecla de Atalho: Ctrl+E,D

• Para "colapsar" (aglutinar) o código– Edit / Outiling / Collapse to Definitions– Tecla de Atalho: Ctrl+M,O

Page 31: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

31

Outiling

Edit / Outlining

Page 32: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

32

Classes File e Directory

Page 33: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

33

Path

• A classe Path permite manipular de forma simples as strings que representam os arquivos e diretórios

Page 34: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

34

System.IO.Stream

Page 35: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

35

System.IO.BufferedStream

Page 36: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

36

System.IO.MemoryStream

Page 37: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

37

System.IO.FileStream

Page 38: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

38

System.IO.StreamReader

Page 39: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

39

System.IO.StringReader

Page 40: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

40

System.IO.StreamWriter

Page 41: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

41

System.IO.StringWriter

Page 42: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

42

System.IO.BinaryReader

Page 43: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

43

System.IO.BinaryWriter

Page 44: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

44

Arquivos Sequenciais

• Novas informações são adicionadas ao final do arquivo

• os registros podem ter tamanhos diferentes• para atingir um determinado ponto do arquivo é

necessário ler todo arquivo até aquele ponto• atualizações de informações no meio do arquivo

são difíceis• são usados geralmente para guardar

informações que são raramente editatas ou atualizadas (emails, arquivos de logs de erros, documentos, cartas)

Page 45: Arquivos. 2 Namespace System.IO Toda as classes relacionadas com dispositivos de entrada e saída encontram-se em System.IO Incluir no início do programa:

45

Arquivos Aleatórios

• Baseados no conceito de registros de tamanhos fixos

• todos os registros deverão ter o mesmo tamanho

• usados quando há necessidade frequente de alterações de informações

• registros podem ser acessados de forma rápida