Erro ao comparar linha do arquivo

Esta ocorrendo uma coisa bem estranha no meu código, eu capturo linhas de um arquivo e comparo com uma string, porém ele sequer está entrando no if.

                       while ((message = reader.readLine()) != null) //le mensagens vindas do socket{
                             //Se tiver mensagens contendo Nicks Ativos indica que eh a lista de nicks ativos
                             //portanto colocar num arquivo para depois ler ele
                             if (message.contains("Nicks Ativos") ) {
                                for (int i=15;i<message.length();i++){
                                    nick = nick + message.charAt(i); //forma o nick tirando "Nicks Ativos :" da string
                                }
                                System.out.println("Tem um nick ativo");
                                //System.out.println("NICK VALE "+nick);
                                //System.out.println("O tamanho de nick eh "+nick.length()+" caracteres");

                                boolean flag = false;
                                //LE O QUE TEM NUM ARQUIVO
                                System.out.println("LEITURA DO ARQUIVO");
                                FileReader readerArq = new FileReader("nicks.txt");
                                BufferedReader leitorArq = new BufferedReader(readerArq);
                                String linha = null;
                                while ((linha = leitorArq.readLine())!=null) {
                                      System.out.println("A linha vale"+linha);
                                      if (linha == nick) {
                                         System.out.println("A linha "+linha+" Eh igual ao nick "+nick);
                                         flag = true;
                                      }
                                }
                                readerArq.close();
                                leitorArq.close();
                                if (flag == false) {
                                   //COLOCA OS NICKS PARA UM ARQUIVO POIS ELE AINDA NAO ESTA LA
                                   FileWriter leitor = new FileWriter("nicks.txt",true);
                                   PrintWriter saida = new PrintWriter(leitor,true);
                                   saida.println(nick);
                                   saida.close();
                                   leitor.close();
                                }
                                nick= "";
                       }

pq vc esta comparando strings com o operador == ?

deverias usar o método equals :wink:

Olá amigo só uma explicação sobre o == e o equals()

quando vc usa o == vc esta comparando referencias de endereços de memória, ou seja no caso de duas Strings usando o == vc esta comparando se as duas variaveis estao apontando para o mesmo endereços de memória.

e usundo o equals vc ira comparar o conteudo das variaveis!

Abraços…

Realmente esse era o problema, muito obrigado aos amigos que são bastante sabios e ajudam quem esta começando, com explicações técnicas detalhadas e ajudas importantes que fazem com que nós consigamos resolver o problema.

Obrigado pela ajuda!!