Академический Документы
Профессиональный Документы
Культура Документы
Arquivos e Excees
Arquivos
Arquivos
Streams (Fluxo)
Um arquivo em Java tratado como um fluxo seqencial de bytes Conceito poderoso que simplifica o tratamento de opera !es de entrada e sa"da de dados (#$%) &ambm usados para comunica 'o entre computadores de uma rede
Java tem mais de () tipos de streams* ou se+a* mais de () classes para tratar de streams,
Arquivos
Streams de -ytes
.ro/ramas usam streams de bytes para reali0ar entrada e sa"da de bytes (ou se+a* seq1ncias de 2 bits)
3ntrada
Sa"da
Arquivos
Streams de Caracteres
.ro/ramas usam streams de caracteres para reali0ar opera !es de entrada e sa"da de dados em caracteres de 8( bits (Unicode)
3ntrada
Super4classe5 9eader 67rias sub4classes para entrada de dados Super4classe5 :riter 67rias sub4classes para sa"da de dados
Sa"da
Arquivos
Excees e Arquivos
Excees
Sempre que tratar escrita e leitura de arquivos em Java necess7rio usar o tratamento de exce !es
&ry ? @ Catc= ( ) ? @
3xemplo de CAdi/o
try { String opcaoStr= JOptionPane.showInputDialog(Entre opcao) int opcao= Integer.parseInt(opcaoStr) ! "atch (E#ception e) { JOptionPane.show$essageDialog(null%&or'ato (o )o.Erra(o) !
Arquivos de Texto
Arquivos
>rquivos de &exto
>tributos de ob+etos s'o salvos em arquivos um por um* separados por al/um caractere (eB/B C*D ) >rquivo texto pode ser editado e visuali0ado facilmente por =umanos Simples para fa0er intercEmbio de dados entre pro/ramas diferentes
3xemplo de cAdi/o
&ile*ea(er + = new &ile*ea(er(a,ui-o.t#t.) /u++ere(*ea(er 0r = new /u++ere(*ea(er(+) String linha = 0r.rea(1ine()
3xemplo de cAdi/o
&ile2riter + = new &ile2riter(ar,ui-o.t#t.) Print2riter pw = new Print2riter (+) pw.println(3ello 2orl(4)
Serializao
&eriali'a(o
3xemplo de cAdi/o
&ileOutputStrea' out = new &ileOutputStrea'(sa-e.ser) O0HectOutputStrea' oos = new O0HectOutputStrea'(out) oos.writeO0Hect(new Date()) oos.close()
&eriali'a(o
3xemplo de cAdi/o
pu0lic -oi( e#portar5lunos(5lunoBC alunos% int nalunos){ O0HectOutputStrea' os = new O0HectOutputStrea' (new &ileOutputStrea'(.Gur'a.ser.)) os.writeO0Hect(nalunos) +or (int i = 9 i D nalunos os.writeO0Hect(alunosBiC) ! os.close() ! iEE){
&eriali'a(o
3xemplo de cAdi/o
Classe aluno deve ser Seriali07vel
pu0lic class 5luno i'ple'ents SerialiIa0le { J. !
&eriali'a(o
3xemplo de cAdi/o
&ileInputStrea' in = new &ileInputStrea'( sa-e.ser ) O0HectInputStrea' ois = new O0HectInputStrea'( in ) Date ( = (Date) ois.rea(O0Hect() ois.close()
&eriali'a(o
3xemplo de cAdi/o
pu0lic -oi( i'portar5lunos(Gur'a 'inhaGur'a){ O0HectInputStrea' os = new O0HectInputStrea' (new &ileInputStrea'(.Gur'a.ser.)) int nu'ero = (Integer) os.rea(O0Hect() +or (int i = 9 i D nu'ero iEE){ 5luno a = (5luno) os.rea(O0Hect() 'inhaGur'a.incluir5luno(a) ! os.close()
&eriali'a(o
Se um ob+eto possui refer1ncias para outros ob+etos (ou arrays)* esses ob+etos s'o tambm seriali0ados Se esses ob+etos* por sua ve0* possuem refer1ncias para outros ob+etos* esses tambm s'o seriali0ados 3 assim por diante 3ssa aborda/em pode ser usada* por exemplo* para fa0er cApias de ob+etos
)I*