2
respostas

Como descrever o caminho de um arquivo para a classe Scanner?

Olá pessoal, estou tentando ler um arquivo porém o programa só compila quando passo a caminho completo do arquivo, dessa forma:

"C:/Users/Israel Rodrigues/workspace/NomeProjeto/nome-projeto/src/main/resources/entrada.txt"

        File arquivo = new File("C:/Users/Israel Rodrigues/workspace/NomeProjeto/nome-projeto/src/main/resources/entrada.txt");
        Scanner scanner = new Scanner(arquivo);

        ArrayList<String> conteudoArquivo = new ArrayList<>();

        while(scanner.hasNextLine()){
            String line = scanner.nextLine();
            conteudoArquivo.add(line);
        }
        scanner.close();

Vejo dois problemas aí: 1 - É meio feio passar um nome tão grande. 2 - Vou precisar enviar esse código p/ uma outra pessoa executar, o caminho obviamente não será o mesmo.

Existe alguma outra forma de encurtar esse caminho? E ainda com a possibilidade da outra pessoa só executar meu programa sem mexer em nada?

2 respostas

Se vc deixar o arquivo dentro da própria aplicação vc pode usar o método getResourceAsStreamda classe Class.

Israel, Tente usar mais ou menos isso...

public class EntradaDeUmArquivo {
    public static void main(String[] args) throws IOException {

        InputStream is = new FileInputStream("arquivo.txt");
        Scanner entrada = new Scanner(is);

        while(entrada.hasNextLine()){
            System.out.println(entrada.nextLine());
        }

        entrada.close();

    }

}