17-IO Arquivosif669/material/pdfsAte2015.2/EXTRA-IO_Arquivos.pdf · 10/4/10 1 Entrada e Saída em...

4
10/4/10 1 Entrada e Saída em Arquivos mais eficiente não será visto no curso Java usa a biblioteca java.io para operar sobre arquivos PRIMEIRO: Criar um objeto que representa o arquivo

Transcript of 17-IO Arquivosif669/material/pdfsAte2015.2/EXTRA-IO_Arquivos.pdf · 10/4/10 1 Entrada e Saída em...

Page 1: 17-IO Arquivosif669/material/pdfsAte2015.2/EXTRA-IO_Arquivos.pdf · 10/4/10 1 Entrada e Saída em Arquivos mais eficiente não será visto no curso Java usa a biblioteca java.io para

10/4/10  

1  

Entrada e Saída em Arquivos mais eficiente não será visto no curso

Java usa a biblioteca java.io para operar sobre arquivos

PRIMEIRO: Criar um objeto que representa o arquivo

Page 2: 17-IO Arquivosif669/material/pdfsAte2015.2/EXTRA-IO_Arquivos.pdf · 10/4/10 1 Entrada e Saída em Arquivos mais eficiente não será visto no curso Java usa a biblioteca java.io para

10/4/10  

2  

public class RepositorioException extends Exception { private Throwable exception; public RepositorioException(Throwable exception) { this.exception = exception; } public String getMessage() { return exception.getMessage(); } }

public interface RepositorioContas { void inserir(ContaAbstrata conta) throws RepositorioException; ContaAbstrata procurar(String numero) throws RepositorioException, ContaNaoEncontradaException; //... }

private void gravar(ContaAbstrata c) throws RepositorioException { BufferedWriter bwBanco = null; FileWriter fwBanco = null; try { fwBanco = new FileWriter(fBanco); bwBanco = new BufferedWriter(fwBanco); bwBanco.write(c.getNumero()+" "+c.getSaldo()); } catch (IOException e) { throw new RepositorioException(e); } finally { // fecha os escritores } }

File fBanco = new File(“c:\\temp\arq.txt”);

QUEM É ESSE?

private ContaAbstrata ler () throws RepositorioException { Scanner inBanco = null; Conta resposta = null; try { inBanco = new Scanner(fBanco); String numero = inBanco.next(); double saldo = Double.parseDouble(inBanco.next()); resposta = new Conta(numero,saldo); } catch (FileNotFoundException e) { throw new RepositorioException(e); } finally { inBanco.close(); } return resposta; }

Page 3: 17-IO Arquivosif669/material/pdfsAte2015.2/EXTRA-IO_Arquivos.pdf · 10/4/10 1 Entrada e Saída em Arquivos mais eficiente não será visto no curso Java usa a biblioteca java.io para

10/4/10  

3  

Page 4: 17-IO Arquivosif669/material/pdfsAte2015.2/EXTRA-IO_Arquivos.pdf · 10/4/10 1 Entrada e Saída em Arquivos mais eficiente não será visto no curso Java usa a biblioteca java.io para

10/4/10  

4  

private void gravar(ContaAbstrata c) throws RepositorioException { FileOutputStream fosBanco = null; ObjectOutputStream oosBanco = null; try { fosBanco = new FileOutputStream(fBanco); oosBanco = new ObjectOutputStream(fosBanco); oosBanco.writeObject(c); } catch (IOException e) { throw new RepositorioException(e); } finally { // fecha os escritores } } A classe ContaAbstrata deve implementar

a interface java.io.Serializable

private ContaAbstrata ler() throws RepositorioException { ContaAbstrata resposta = null; FileInputStream fisBanco = null; ObjectInputStream oisBanco = null; try { fisBanco = new FileInputStream(this.ARQUIVO); oisBanco = new ObjectInputStream(fisBanco); resposta = (ContaAbstrata) oisBanco.readObject(); } catch (EOFException e) { ... } // ... } finally { // fecha os leitores } return resposta; }