Problema com I/O de dados usando buffered Reader

Ae galera,
É o seguinte…
Criei os seguintes metodos publicos dentro do meu programa:

private static InputStreamReader dados = new InputStreamReader(System.in);
private static BufferedReader teclado = new BufferedReader(dados);
private static String entrada = new String ("");

Dentro do metodo main, eu utilizo estes metodos chamando:

entrada = teclado.readLine();

Mas quando eu criei um outro metodo utilizando:

public static void metodo() {

e dentro dele chamando a mesma linha ocorre o seguinte erro:

unreported exception java.io.IOException; must be caught or declared to be thrown
entrada = teclado.readLine();
^

O que eu faço para conseguir utilizar o teclado.readLine a partir deste outro metodo?

Traduzindo: a exceção java.io.IOException não foi declarada; ela deve ser pega ou lançada

Resumindo:

public static void metodo() throws IOException { ... }

ou

public static void metodo() { ... try{ entrada = teclado.readLine(); } catch(IOException e) { ... } }

Só um comentário.

Quase sempre não é interessante fazer

String variavel = new String("texto");

Strings em JAVA são imutáveis e com isto, a cada alteração uma nova é criada.

Quando usamos a implementação acima, é sempre criado um objeto novo em memória independentemente da string já ter sido utilizada ou não.

Se fizermos assim:

String variavel = "texto";

Será verificado em um Pool de Strings se esta existe e assim não será criado uma nova.

Bem, em aplicações pequenas isso não influe muito. A medida que o negócio cresce é que o bicho aparece… hehe…

bem, só uma questão de performance.

falow! :wink: