Alguém me explica? BufferedReader leitor = new BufferedReader(new InputStreamReader(System.in));

5 respostas
VantuilJose

Naum entendi bem o que esse código faz, akele new como parâmetro, que tipo de objeto o bufferedReader aceita como parâmetro, o que eles fazem

BufferedReader leitor = new BufferedReader(new InputStreamReader(System.in))

Alguém pode me explicar o que está acontecendo naquele trecho detalhadamente?

5 Respostas

VantuilJose

erro

faelcavalcanti

dá uma sacada neste artigo do guj.

ViniGodoy

Dá uma lida no Decorator Design Pattern.

VantuilJose

No artigo do guj eles explicam como usar ele para gravar em arquivos, e mesmo assim eles não explicam detalhadamente. Eu sei fazer, mas naum sei como funciona.
Já no Decorator Design Pattern me parece que o que tem lá não tem muito a ver com o que eu pedi naum…

T

Tá bom…

BufferedReader leitor = new BufferedReader(new InputStreamReader(System.in))

Isto é uma abreviação de:

import java.io.*;
...

InputStream is = System.in;
InputStreamReader isr = new InputStreamReader (is);
BufferedReader leitor = new BufferedReader(isr);

Como o pessoal mencionou, o tal do “Decorator Design Pattern” diz que você pode criar uma classe que só acrescenta uma funcionalidade a uma classe já existente. Por exemplo, quando você usa a classe BufferedReader, ela acrescenta alguns métodos à classe que ela recebe como parâmetro no construtor, que no caso é um InputStreamReader. No caso, é o método readLine.

Aí também é usado um outro design pattern que é o “Adapter”. No caso, você tem um InputStream (System.in) mas precisa de um objeto que pertença a uma classe que implemente Reader, para poder passar ao construtor de BufferedReader. Nós então precisamos de um “Adapter” ou adaptador (igualzinho a aquele transformador que você usa para transformar 220 V para 110 V quando você quer ligar um aparelho que só funciona em 110 V em uma tomada de 220 V).
Nós então usamos a classe InputStreamReader, que converte um InputStream (System.in) para uma classe que implementa Reader (nesse caso InputStreamReader).

Criado 22 de setembro de 2008
Ultima resposta 23 de set. de 2008
Respostas 5
Participantes 4