Caminho relativo de arquivo para leitura e gravação (JSF)

3 respostas
Malkav.Felipe

Olá pessoal.

Estou tendo dificuldades em conseguir ler e gravar em um arquivo dentro de uma aplicação web.

A estrutura da aplicação é +- essa:
META-INF
....MANIFEST.MF
....context.xml
WEB-INF
....Classes
....lib
....faces-config.xml
....web.xml
paginas
....index.xhtml
....(outras páginas)
....conteudoQuemSomos.txt
resources
....(outros arquivos)

Tenho a seguinte classe que tenta abrir o arquivo

package br.com.site.controller;

public class QuemSomosController {

    private ConteudoDePagina conteudoDePagina;

    public QuemSomosController() {
        super();

    }

    public String montarPagina() {
        //esse é o arquivo que eu quero abrir pra ler
        File arquivo = new File("paginas/conteudoQuemSomos.txt");
        FileReader reader;
        BufferedReader leitor;
        try {
            //aqui acontece o erro, pois o "arquivo" não é encontrado, não existe
            reader = new FileReader(arquivo);
            leitor = new BufferedReader(reader);
            conteudoDePagina = new ConteudoDePagina();
            conteudoDePagina.setArquivo(arquivo);
            String conteudo = "";
            String linha = leitor.readLine();
            while (linha != null) {
                conteudo += linha;
                linha = leitor.readLine();
            }
            conteudoDePagina.setConteudo(conteudo);
            leitor.close();
            reader.close();
        } catch (IOException ex) {
            return "Erro";
        }
        return "QuemSomos";
    }

    ....

}

A minha dúvida consiste em como conseguir o caminho para o o arquivo conteudoQuemSomos.txt, pois do jeito que eu to tentando não to conseguindo

Obrigado pela atenção!!

Felipe.

3 Respostas

D

Assim:

import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
...
FacesContext context = FacesContext.getCurrentInstance();

ServletContext sc = (ServletContext) context.getExternalContext()
					.getContext();

 sc.getRealPath("/SEUDIRETORIO");
Malkav.Felipe

djemacao

Obrigado pela resposta. Era exatamente isso que eu precisava!!

Qualquer coisa, volto a postar 8) …

Abraços!!

devilmachine

depois que ele ler o arquivo como ficaria para gerar 1 lista dos itens do arquivo de text e inserir em 1 banco de dados?

exemplo tenho 1 arquivo… preciso abrir ele e ler os dados… estao ordenados por coluna… e a proxima etava é inserir no banco…

alguem sabe como ficaria?

Criado 1 de julho de 2009
Ultima resposta 23 de dez. de 2010
Respostas 3
Participantes 3