Duvida com path ao abrir arquivo

7 respostas
T

Pessoal,

Tenho um programa que possui um pacote Util e dentro dele tem um arquivo.txt que preciso ler.

A minha classe que tenta abrir o arquivo está em um outro pacote chamado compilador. Como eu faço no construtor FileReader achar esse arquivo? Olha abaixo o que eu fiz

simbolos = new FileReader("…\Util\PalavrasReservadas.txt");

O que tá errado?

7 Respostas

Algebra

Talvez para melhorar isso aí use a função que extrai o diretório desde a Unidade primária

ex:

String Hd=System.getProperty(“user.dir”);

T

Algebra:
Talvez para melhorar isso aí use a função que extrai o diretório desde a Unidade primária

ex:

String Hd=System.getProperty(“user.dir”);

Mas isso ele me dá o diretorio do projeto! Eu preciso do path relativo a classe tipo quero pegar um arquivo que está em outro pacote dentro do meu programa.

Esse ai eu vou ter o path do projeto. Acho que não ficaria legal.

Algebra

Você recebe alguma mensagem de erro? qual?

T

Olha que estranho o erro:

\Util\PalavrasReservadas.txt (O sistema não pode encontrar o caminho especificado)

Ele tá tentando pegar o arquivo na raiz do projeto, mas o arquivo está dentro de src\Util\arquivo.txt.

Se eu coloco esse arquivo no raiz do projeto quando eu quiser criar o jar ele não vai ser empacotado certo? Preciso de uma forma de abrir o arquivo onde o mesmo vai ser levado junto ao pacote .jar.

cristian_clever

Para obter um recurso dentro do projeto, proceda da seguinte forma:

InputStream in = ClassLoader.getSystemClassLoader().getClass().getResourceAsStream("/com/application/resources/File.txt");

[]s

T

cristian_clever:
Para obter um recurso dentro do projeto, proceda da seguinte forma:

InputStream in = ClassLoader.getSystemClassLoader().getClass().getResourceAsStream("/com/application/resources/File.txt");

[]s

InputStream pode ser passado para o BufferedReader?

Abraços, desculpa a noobice.

cristian_clever

Sem dúvida:

StringBuilder fullText = new StringBuilder();
		try {
			InputStream in = ClassLoader.getSystemClassLoader().getClass().getResourceAsStream("/com/MeuArquivoTexto.txt");
			BufferedReader in2 = new BufferedReader(new InputStreamReader(in));

			String str;
			while ((str = in2.readLine()) != null) {

				fullText.append(str);
			}
			in2.close();
			in.close();
		}
		catch (IOException e) {
			Log.error(e);
			throw new RuntimeException(e);
		}

[]s

Criado 24 de setembro de 2009
Ultima resposta 24 de set. de 2009
Respostas 7
Participantes 3