Galera, eu fiz uma classe Teste que, eu acredito né, leia um arquivo txt e percorra o mesmo, para ver se a palavra entrada existe no arquivo ou não.
Segue o código:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
public class TesteOutro
{
private BufferedReader leitor;
private String linha;
private String entrada;
public TesteOutro(String novaEntrada)
{
linha = "";
this.entrada = novaEntrada;
}
public boolean existe()
{
// --------------------------------
// Lê o arquivo teste.txt
// --------------------------------
try {
leitor = new BufferedReader(new FileReader("lista.txt"));
// --------------------------------
// Enquanto a linha do arquivo for diferente da entrada pelo usuario
// --------------------------------
while (!linha.equals(entrada))
{
linha = leitor.readLine();
}
leitor.close();
return true;
}
// --------------------------------
// Caso não encontre o arquivo
// --------------------------------
catch( FileNotFoundException e ) {
return false;
}
// --------------------------------
// Entrada do usuário é inválida
// --------------------------------
catch ( IOException e ) {
return false;
}
}
public void leLinha()
{
System.out.println("linha = " + linha + ".");
}
}
Minha dúvida é: esse código está bem estruturado? Eu estou receoso com isso porque está praticamente tudo em um método. Ele funciona, mas queria saber se está conciso e se isso respeita as “regras” de acoplamento, coesão e design dirigido por responsabilidade.
E também… quando eu digito uma palavra que não existe no arquivo, dá NullPointerException. O IOException não deveria cuidar disso?
Abraço.
