1
Ficheiros:
2
Quanto ao contedo:
Ficheiros de texto:
caracteres ASCII,
o contedo legivel,
estrutura dos dados no est includa no ficheiro.
Extenso caracterstica do nome: *.txt
Ficheiros binrios:
escreve os dados no formato original das variveis (inteiros,
reais,string,bool )
No legvel, a estrutura dos dados no est includa no
ficheiro.
Processamento mais rpido e ficheiros de menor tamanho.
Geralmente s podem ser lidos por software que conhece o
formato do ficheiro.
3
Quanto ao contedo:
4
Exemplo de escrita de ficheiro de texto:
if (!System.IO.File.Exists(nomeficheiro))
{ using(StreamWriter sw = File.CreateText(nomeficheiro)) // cria ficheiro de
// texto.
{ for(int c=0; c<agenda.Length; c++)
{ sw.WriteLine(agenda[c].Nome);
sw.WriteLine(agenda[c].tel);
sw.WriteLine(agenda[c].email); }
}
else
{ using(StreamWriter sw = File.AppendText(nomeficheiro)) // acrescenta no
// fim do ficheiro.
{ sw.WriteLine(nome=, nome); } 5
Exemplo de leitura de ficheiro de texto:
string nomeficheiro =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) +
@\ + inputbox( nome do ficheiro ?);
if (File.Exists(nomeficheiro))
{ using (StreamReader sr = File.OpenText(nomeficheiro))
{ while ((nome= sr.ReadLine()) != null)
{ MessageBox.Show(nome= + nome);
}
}
else
{ MessageBox.show(O ficheiro + ficheiro + no existe);
}
6
Exemplo de escrita de ficheiro binrio:
string ficheiro =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) +
@exemplo.dat
using ( BinaryWriter writer = new BinaryWriter(File.Open(fileName,
FileMode.Create)) )
{
writer.Write(1.250F); // escreve um real
writer.Write(@"c:\Temp"); // escreve um texto
writer.Write(10); // escreve um inteiro
writer.Write(true); // um booleano;
}
7
Exemplo de leitura de ficheiro binrio:
string ficheiro =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) +
@\exemplo.dat;
8
Outras operaes sobre ficheiros:
9
Outras operaes sobre ficheiros:
10
Gravao por serializao
A serializao permite transformar um objecto numa sequncia de dados
para poder ser gravado em ficheiro.
A deserializao realiza a operao inversa reconstruindo o objeto a partir
dos dados lidos em formato de texto.
Simplificam as operaes de escrita/leitura de ficheiros.
Permite:
Gravar estruturas completas para ficheiro.
Mais simples (no necessrio percorrer os dados).
No ficheiro so gravados dados e informao sobre os dados ( ver xml).
Mais indicados para trocar dados entre sistemas diferentes
O processamento pode demorar mais que ficheiros de texto e binrios (
para as situaes comuns no comum notar-se diferena)
11
Gravao por serializao
Gravao:
IFormatter formatador = new BinaryFormatter();
Stream stream = new FileStream(ficheiro.bin", FileMode.Create);
formatador.Serialize(stream, agenda); // grava a agenda toda de uma vez.
stream.Close();
Leitura:
IFormatter formatador = new BinaryFormatter();
Stream stream = new FileStream("agenda.bin", FileMode.Open);
agenda = (contacto[]) formatador.Deserialize(stream); // le a agenda toda
stream.Close();
12
Exerccio:
13
Gravar/ler outros formatos
14
Gravar/ler outros formatos
15