Você está na página 1de 14

Tpicos de Java Parte 1

Clique para editar o estilo do subttulo mestre

Prof. Thiago
6/14/12

Sumrio

Tratamento de excees

try/catch

try/catch/finally throws throw

Sreams
Leitura/Escrita Uso

com bytes, caracteres e linhas

de buffer padro de um processo, no Java


6/14/12

Streams

Excees
Entende-se

por exceo o desvio do fluxo principal do programa causado por uma instruo passvel de exceo, quando esta ocorre. exemplos de exceo:
Diviso de um nmero inteiro por zero. Gera exceo pois isso alm de ser matematicamente impossvel foi implementado na operao de inteiros de Java para gerar exceo. no encontrado: se voc tentar abrir pelo Java um arquivo que no existe, ser gerada uma exceo do tipo java.io.FileNotFoundException.

So

Arquivo

6/14/12

try/catch try/catch/finally
Pegando
Para

excees:

pegar excees usam-se as seqncias try/catch ou try/catch/finally


Bloco Bloco

try: tenta realizar as instrues passveis de exceo. catch: pega a exceo do tipo ou de um subtipo vlido do parmetro especificado. Se o tipo for Exception, que o tipo mais genrico de exceo, este catch poder aceitar qualquer exceo. Os blocos catch podem ser declarados como else if, podendo tratar vrios tipos de exceo por bloco try. finally: sempre executa. Neste bloco deve-se colocar os trechos de cdigo que devero sempre executar independentemente do resultado do bloco try ter sido completado ou no. Ou seja, o bloco finally 6/14/12 executado sempre depois do bloco da concluso, seja

Bloco

try/catch try/catch/finally
Exemplo

de try/catch

int x, y, z; x = 1; y = 0; try { // Tenta realizar a instruo passvel de exceo. z = x/y; } catch (Exception e) { /* Em caso de exceo, o programa pode identific-la em tempo de execuo e imprimir uma mensagem mais agradvel para o usurio */ 6/14/12 System.out.println(Ocorreu o erro: +

Streams
A

definio de Stream em Java fluxo. Streams so utilizadas para definir fluxos. Na vida real um fluxo poderia ser, por exemplo, a gua movimentando dentro de uma mangueira. Na programao um exemplo de fluxo poderia ser o de caracteres enviados para um arquivo de texto, ou de caracteres enviados por uma rede de computadores.

6/14/12

Streams
Na

programao os fluxos so divididos em duas categorias:


Leitura Escrita

(InputStream) (OutputStream)

6/14/12

Copiar um arquivo byte a byte


FileInputStream in; FileOutputStream out; try { in = new FileInputStream("input_file.txt"); out = new FileOutputStream("output_file.txt"); int c; while((c = in.read()) != -1) { out.write(c); }
6/14/12

Ilustrao do algoritmo anterior

6/14/12

Copiar um arquivo caracter a caracter


FileReader inputStream = null; FileWriter outputStream = null; try { inputStream = new FileReader(input_file.txt"); outputStream = new FileWriter(output_file.txt"); int c;
6/14/12 while ((c = inputStream.read()) != -1)

Copiar um arquivo linha a linha (buffer)


BufferedReader inputStream = null; PrintWriter outputStream = null; try { inputStream = new BufferedReader(new FileReader(input_file.txt")); outputStream = new PrintWriter(new FileWriter(output_file.txt")); String l;
6/14/12 while ((l = inputStream.readLine()) !=

Streams com buffer


Buffer

pode ser entendido como uma memria utilizada para acumular valores at um limite e ento ser descarregada. Java Streams um exemplo clssico de buffer so as classes:
BufferedReader BufferedWriter

Em

Um

exemplo de implementao usando um buffer para ler e escrever arquivos seria:

inputStream = new BufferedReader(new FileReader(input_file.txt"));


6/14/12 = new BufferedWriter(new

outputStream

Streams com buffer


Normalmente
Quando Quando

um buffer descarregado em duas ocasies:


atinge seu limite. o mtodo flush() chamado. Este mtodo significa descarregar.

6/14/12

System.in, System.out, System.err


So

Streams padro do Java que simbolizam:

System.in

: entrada de dados para o programa. Normalmente recebe os dados do teclado. Pode tambm receber dados de outros dispositivos de entrada de dados. : sada padro de dados do programa. Normalmente utilizado para enviar mensagens de interao para o usurio. : sada padro de dados do programa quando ocorre um erro no programa.

System.out

System.err

6/14/12

Você também pode gostar