Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problemas com If utilizando o br.readLine();

Oi, escrevi um código simples, para exemplificar alguns conceitos que tinha em mente, sendo este, o código a seguir:

public static void main(String[] args) throws Exception {

        InputStream fis = System.in;
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);

        FileOutputStream fos = new FileOutputStream("lorem2.txt");
        OutputStreamWriter osw = new OutputStreamWriter(fos);
        BufferedWriter bw = new BufferedWriter(osw);


        String line = br.readLine();    
        System.out.println(line);

        if(line == "banana") {
            System.out.println("De fato, uma banana");
        }

        br.close();
        bw.close();
    }

O problema é que o System.out mostra "banana", mas a condição no if jamais é realizada, Já tentei atribuir o conteúdo da linha à uma variável, sem sucesso...

A ideia final, é sair do laço de escrita, apenas quando for inserida uma palavra chave, seja essa "exit" ou algo mais específico como "application-end".

3 respostas
solução!

Olá Renato,

A questão está ao tipo de comparação que estais usando "==", como se trata de objeto o "==" compara com se line a "banana" estão no mesmo endereço de memória. Como se trata de String e você deseja comparar o valor você deve usar o método values() exemplo:

  if(line.equals("banana")) {
            System.out.println("De fato, uma banana");
        }

Mude o seu programa e me conta se funcionou ;)

Deu certo! , muito obrigado.

Maravilha!