Quando vc faz um while/if/for você tem que fazer uma verificação.
Quando você faz isso:
while((linha = leitor.readLine())){
}
seria a “mesma coisa” que fazer isso:
while(leitor.readLine()){
}
A mensagem é que não é possivel fazer a conversão String > boolean.
Como revolver?
while((linha = leitor.readLine()) != null){
}
Note a sutil mas gigantesca diferença que fez o != null.
Agora estou falando:
Após jogar o valor do leitor.readLine() na variavel linha. verificar se está é null, ou seja, me retorna um valor booleano (true/false)!