arquivos. 2 namespace system.io toda as classes relacionadas com dispositivos de entrada e saída...
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/1.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/2.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/3.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/4.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/5.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/6.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/7.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/8.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/9.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/10.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/11.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/12.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/13.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/14.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/15.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/16.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/17.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/18.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/19.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/20.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/21.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/22.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/23.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/24.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/25.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/26.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/27.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/28.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/29.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/30.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/31.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/32.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/33.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/34.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/35.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/36.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/37.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/38.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/39.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/40.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/41.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/42.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/43.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/44.jpg)
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:](https://reader035.vdocuments.net/reader035/viewer/2022062623/552fc111497959413d8c6721/html5/thumbnails/45.jpg)
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