Acessando arquivo

4 respostas
TFLima

Olá estou implementando uma aplicação em jsf, e em um dos Beans eu quero fazer a leitura de um arquivo .properties. Pra isso eu uso o seguinte código pra encontrar o caminho do arquivo:

String fileName;
String sep = System.getProperty("file.separator");
fileName = System.getProperty("user.dir");
fileName += sep + "config" + sep + "user.properties";		
File file = new File(fileName);	

Properties proper = new Properties();				
		
try {
	proper.load(new FileInputStream(file));
} catch (FileNotFoundException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

O arquivo se encontra numa pasta config, dentro da pasta do meu projeto, mas o problema é que aparentemente o comendo System.getPropert("user.dir") está retornando o diretório do tomcat, invés do do arquivo, pois ele cai no FileNotFoundException e dá a seguinte mensagem:

java.io.FileNotFoundException: C:\Arquivos de programas\MyEclipse 6.5\myeclipse\eclipse\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_6.5.0.zmyeclipse650200806\tomcat\bin\config\user.properties (O sistema não pode encontrar o caminho especificado)

Alguém sabe me dizer qual o comando correto que eu devo utilizar para que ele peque o diretório do meu arquivo? Obrigado.

4 Respostas

victor.godinho

já tentou usar “/” ao invés de user.dir?

Falows

Jair_Rillo_Junior

Em aplicações WEB, para você buscar o path relativo você deve usar o método request.getServletContext().getRealPath("/").

Em servlet por exemplo, você tem o objeto request no métodos de negócios (doGet, doPost e etc), no caso do JSF< você precisa obter esse objeto através do facesContext.getExternalContext();

Dê uma estudada nisso que certamente você irá encontrar algo (inclusive acredito que no guj tenha algo do tipo).

lcegatti

A sua pasta config está no src da sua aplicação ?

Caso sim vc pode recupera-lo da seguinte maneira:

Properties prop = new Properties();
		try {
			prop.load(this.class.getResourceAsStream("/config/user.properties"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

[]'s

TFLima

Vlw caras esclareceram mtas dúvidas.

Criado 11 de agosto de 2008
Ultima resposta 11 de ago. de 2008
Respostas 4
Participantes 4