tratamento de exceções, multithreads e arquivos (em...
TRANSCRIPT
![Page 1: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/1.jpg)
Tratamento de Exceções, Multithreads e arquivos
(em Java)Programação Orientada a Objetos
![Page 2: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/2.jpg)
Programação Orientada a Objetos
Nesta unidade vamos ver os últimos assuntos de interesse em java.
O primeiro deles, bem simples, é o tratamento de excetratamento de exceççõesões (você pode pesquisar como é o tratamento de exceções em C++).
![Page 3: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/3.jpg)
Programação Orientada a Objetos
Em tratamento de exceções, temos um bloco try:
trytry{...// instruções que podem lançar uma exceção
}Catch (tipo)Catch (tipo){...// instruções para tratar uma exceção
}
![Page 4: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/4.jpg)
Programação Orientada a Objetos
CatchCatch “pega” uma exceção disparada por throwthrow.
Assim, para disparar uma exceção, precisamos fazer uso da instrução throwthrow.
![Page 5: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/5.jpg)
Programação Orientada a Objetos
Se o bloco trytry for executado sem problemas, então nenhum tratador de exceções é executado.Podem existir vários blocos catchcatch em um bloco trytry.Pode existir um bloco finallyfinally (colocado logo após o último catchcatch) que seráexecutado independentemente de uma exceção ser ou não disparada.
![Page 6: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/6.jpg)
Programação Orientada a Objetos
Exemplo (esquemático):try{ ...
resultado = divisao(p,q);...
} catch (DivisaoPorZero e){
// mostrar mensagem de erro}
![Page 7: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/7.jpg)
Programação Orientada a Objetos
Exemplo (esquemático):public double divisao(int x, int y) throws DivisaoPorZero{
if (y == 0)throw new DivisaoPorZero();
return (double) x/y;}
![Page 8: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/8.jpg)
Programação Orientada a Objetos
Exemplo (completo)
public class DivisaoPorZeroDivisaoPorZero extends ExceptionException
{public DivisaoPorZero(){
JOptionPane.showMessageDialog(null," Erro! Tentativa de divisão por zero", "teste", JOptionPane.PLAIN_MESSAGE);
}}
![Page 9: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/9.jpg)
Programação Orientada a Objetos
Exemplo (código main)
TesteDivisaoPorZeroTesteDivisaoPorZero x = new x = new TesteDivisaoPorZeroTesteDivisaoPorZero();();trytry{{SystemSystem.out..out.printlnprintln(x.(x.divisaodivisao()); ());
}}catch(catch(DivisaoPorZeroDivisaoPorZero z)z){{SystemSystem.out..out.printlnprintln("erro");("erro");
} }
![Page 10: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/10.jpg)
Programação Orientada a Objetos
Exemplo (método divisão)
public double divisao() throws DivisaoPorZero{
if (n2 == 0)throw new DivisaoPorZero();
resultado = (double) n1/n2;return resultado;
}
![Page 11: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/11.jpg)
Programação Orientada a Objetos
CONSTRUTOR
public TesteDivisaoPorZero(){
n1 = 10;n2 = 0;resultado = 0;
}
![Page 12: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/12.jpg)
Programação Orientada a Objetos
A cláusula throws lista as exceções que podem ser disparadas pelo método:
Tiporet nomeMétodo(parametros) throws exceção1, exceção2, ...
![Page 13: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/13.jpg)
Programação Orientada a Objetos
ConclusãoConclusão: Este conceito (tratamento de exceções) é bem simples de se entender. Épreciso consultar outras fontes bibliográficas para consolidar seu conhecimento e verificar outros casos (como relançamento de uma exceção).
![Page 14: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/14.jpg)
Programação Orientada a Objetos
MultithreadingMultithreading
![Page 15: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/15.jpg)
Programação Orientada a ObjetosThreads ajudam a produzir ações simultâneas.
Imagine que tenhamos 2 trabalhadores em um escritório. Os dois estão meio sonolentos e, vez ou outra, dormem um pouco.
Com threads fica fácil simular este comportamento (independente e paralelo) dos trabalhadores.
![Page 16: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/16.jpg)
Programação Orientada a Objetos
acordado
dormindo
acordado
dormindo
acordado
acordado
![Page 17: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/17.jpg)
Programação Orientada a Objetos
Como o computador permite que os processos trabalhem em paralelo?
Na verdade cada processo recebe uma fração de tempo para executar sua tarefa. Quando o tempo termina, o processo é colocado em estado de espera passando a vez para outro processo...
![Page 18: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/18.jpg)
Programação Orientada a Objetos
Os processos com mesma prioridade dividem igualmente o recurso CPU em um rodízio chamado round-robin.
Depois que o último processo utilizou o recurso CPU, o primeiro da fila volta a ter direito de utilizar mais um pouco de CPU.
![Page 19: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/19.jpg)
Programação Orientada a Objetos
Ciclo de vida de uma thread. Ela nasce com o comando start e éexecutada através de seu método run.
nasceu
pronta
start
executando
morreu
![Page 20: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/20.jpg)
Programação Orientada a Objetos
Quando invocamos sleep (tempo), indicamos que a thread irá dormir...
nasceu
pronta
start
executando
morreu
adormecida
![Page 21: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/21.jpg)
Programação Orientada a Objetos
Depois de um tempo adormecida, ela se torna pronta para executar...
nasceu
pronta
start
executando
morreu
adormecida
![Page 22: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/22.jpg)
Programação Orientada a Objetos
Se o método interruptfor chamado para uma thread adormecida, ela se torna pronta para executar.
nasceu
pronta
start
executando
morreu
adormecida
![Page 23: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/23.jpg)
Programação Orientada a Objetos
Quando uma threadchama wait, ela entra em estado de espera por um recurso.
nasceu
pronta
start
executando
morreu
esperando
![Page 24: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/24.jpg)
Programação Orientada a Objetos
Sairá do estado de espera quando uma outra threadnotificar que o recurso está disponível (com notify ou notifyAll).
nasceu
pronta
start
executando
morreu
esperando
![Page 25: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/25.jpg)
Programação Orientada a Objetos
Uma thread fica bloqueada normal-mente para situações de E/S.
nasceu
pronta
start
executando
morreu
bloqueada
![Page 26: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/26.jpg)
Programação Orientada a Objetos
Um exemplo bem simples:public class testeThread{
public static void main(String args[]) {processo T1,T2;T1 = new processo(“T1”);T2 = new processo(“T2”);T1.start(); // inicia a threadT2.start(); // inicia a outra thread
}}
![Page 27: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/27.jpg)
Programação Orientada a Objetos• class processo extends Thread• {• private int tempo;• public processo (String nome)• {• super (nome);• tempo = (int) (Math.random() * 300);• }• public void run ( )• {• int i=0;• while (i < 10)• {• System.out.println(getName( )+ "dormindo");• try{Thread.sleep(tempo);}• catch (InterruptedException x){ System.out.println("erro");}• System.out.println(getName( )+ "trabalhando");• i++;• } • }• }
![Page 28: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/28.jpg)
Programação Orientada a ObjetosExecução:
T1 T2D D
TDTD
TD... ...
![Page 29: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/29.jpg)
Programação Orientada a Objetos
ConclusõesConclusões: Threads é um assunto bastante rico. Você está tendo apenas um aperitivo para saber do que se trata.
OBS.: POO objetiva – primordialmente –ensinar orientação a objetos.
![Page 30: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/30.jpg)
Programação Orientada a Objetos
ArquivosArquivos
(C++)(C++)
![Page 31: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/31.jpg)
Programação Orientada a Objetos
Às vezes desejamos que as informações permaneçam armazenadas no computador quando o desligamos. Para fazer isso, precisamos armazenar os dados em arquivos.Quando armazenamos os dados em arquivos, chamamo-os de dados persistentes.
![Page 32: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/32.jpg)
Programação Orientada a Objetos
marcador de fim de arquivo
![Page 33: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/33.jpg)
Programação Orientada a Objetos
Os arquivos podem ser de acesso seqüêncial ou de acesso aleatório (randômico).
Nos arquivos de acesso seqüêncial, a informação na posição 100 só pode ser acessada após 99 leituras de dados.
Já nos arquivos de acesso aleatório, a informação na posição 100 seria obtida através de um único acesso.
![Page 34: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/34.jpg)
Programação Orientada a Objetos
Para acessar a informação em uma determinada posição do arquivo de acesso aleatório, é preciso posicionar o ponteiro do arquivo.
Isso é feito com o método seekg (seekget) ou seekp (seek put).
A abertura de arquivos normalmente coloca o ponteiro do arquivo na primeira posição.
![Page 35: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/35.jpg)
Programação Orientada a Objetos
![Page 36: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/36.jpg)
Programação Orientada a Objetos
![Page 37: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/37.jpg)
Programação Orientada a Objetos
Um arquivo de acesso aleatório pode ser consultado de forma seqüêncial(um registro após o outro).
Um arquivo de acesso seqüêncial não pode ser consultado de forma aleatória!
![Page 38: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/38.jpg)
Programação Orientada a Objetos
#include <fstream> // file streamusing std::ofstream; //output file stream
...ofstream arq(“nome”, ios::out); // saidaif (!arq) {
//erroexit(1);
}...
ios::app � append (final do arquivo)
ios::ate � abre como escrita
posiciona no final do arquivo.
ios::in � abre como entrada
ios::binary � abre como binário
![Page 39: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/39.jpg)
Programação Orientada a Objetos
#include <fstream> // file streamusing std::ofstream; //output file stream
...ofstream arq(“nome”, ios::out); // saidaif (!arq) {
//erroexit(1);
}...
ifstream arq(“nome”, ios::in); // entrada
![Page 40: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/40.jpg)
Programação Orientada a Objetos
while (cin>> nome >> nota)
{
arq << nome << “ “ << nota << endl;
}
...Saida de dados para o arquivo. Leitura do teclado.
![Page 41: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/41.jpg)
Programação Orientada a Objetos
while (arq>> nome >> nota)
{
cout << nome << “ “ << nota << endl;
}
...Saida de dados para o monitor. Leitura do arquivo.
![Page 42: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/42.jpg)
Programação Orientada a Objetos
Para criar um arquivo de acesso aleatório épreciso abri-lo como binary e utilizar o comando write da seguinte forma:
arq.write (reinterpret_cast <const char*> (&n), sizeof(n));
![Page 43: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/43.jpg)
Programação Orientada a Objetos
Para criar um arquivo de acesso aleatório épreciso abri-lo como binary.
Utilize o comando write para escrever informações no arquivo e o comando readpara ler:arq.write (reinterpret_cast <const char*> (&n), sizeof(n));
arq.read (reinterpret_cast <const char*> (&n), sizeof(n));
![Page 44: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/44.jpg)
Programação Orientada a Objetos
Eis um loop de leitura de dados de forma seqüêncial de um arquivo de acesso aleatório:
REGISTRO reg;
while (arq && !arq.eof())arq.read(reinterpret_cast <const char *> (®), sizeof(reg));
![Page 45: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/45.jpg)
Programação Orientada a Objetos
Para a leitura de uma informação em um determinado registro, basta utilizar seekg:
arq.seekg(pos*sizeof(reg));
O mesmo se aplica para o ponteiro de escrita (seekp).
![Page 46: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/46.jpg)
Programação Orientada a Objetos
Trabalhar com arquivos também não é algo complicado. É preciso prática para compreender os comandos/métodos.
Estude primeiramente como o processo de leitura e escrita ocorre em C++ e depois pesquise como acontece em Java. Isso farácom que você consolide seu aprendizado.
![Page 47: Tratamento de Exceções, Multithreads e arquivos (em Java)livresaber.sead.ufscar.br:8080/jspui/bitstream/123456789/1881/1... · Conclusão : Este conceito (tratamento de exceções)](https://reader035.vdocuments.net/reader035/viewer/2022081403/6092f37d312c556a331422c9/html5/thumbnails/47.jpg)
Programação Orientada a Objetos
FIMFIM