Ler arquivo dentro e fora do classpath

1 resposta
javax.skol

Pessoal,
tenho a seguinte situação, 1) o usuário deverá optar em usar um arquivo.txt que está dentro do meu projeto, ou 2) através do JFileChooser, escolher o que ele quiser.
na situação 1) estou utilizando:

Scanner scanner = new Scanner(this.getClass().getResourceAsStream(pathFile));

mas na situação 2) como o JFileChooser me retorna uma instancia de File, como eu adaptaria esse método para atender as 2 situações, evitando duplicidade de codigo?
Existe alguma outra maneira que me possibilite pegar uma arquivo tanto de fora do classpath quanto de dentro?

1 Resposta

E

Não há duplicidade de código - basta lembrar que um dos construtores de Scanner (que é o que você usou) recebe um InputStream, como você fez, e outro recebe um java.io.File (que é o resultado de um JFileChooser).

Portanto, você tem algo como:

Scanner scanner = null;
if (....) {
     scanner = new Scanner (getClass().getResourceAsStream(....));
} else {
     JFileChooser .....;
     scanner = new Scanner (jfc.getSelectedFile());
}
Criado 27 de junho de 2010
Ultima resposta 28 de jun. de 2010
Respostas 1
Participantes 2