Carregar arquivo txt

3 respostas
W

Olá…

Estou precisando ler um arquivo de texto e salvar seu conteúdo em um banco de dados…fiz o seguinte código só que ele só funciona no servidor local, quando rodo a aplicação em um servidor da web ele não consegue encontrar o arquivo…

FileReader importaFile = new FileReader("c:\caminho do arquivo");
        
        BufferedReader publicoReader = new BufferedReader(importaFile);

        String listaImportacao[] = null;
        boolean eof = false;
        int contador = 0; // contar quantas linhas foram lidas

        while (!eof) {
          String readLine = publicoReader.readLine();
          if (readLine == null)
            eof = true;
          else if (contador > 0) {
            listaImportacao = readLine.split(",");
            listaPublico.add(carregaPublicoVO(listaImportacao));
          }
          contador++;
        }
        publicoReader.close();
        importaFile.close();
        
        //incluir todos os nomes no banco de dados
        for(int i = 0; i < listaPublico.size(); i++){
          PublicoVO publico = (PublicoVO)listaPublico.get(i);
          
          pView.setNome(publico.getNome().toUpperCase());
          pView.setEmail(publico.getEmail());
          pView.setTelefone(publico.getTelefone());
          pView.setEmpresa(publico.getEmpresa().toUpperCase());
          pView.setAtivo("S");
          pView.setDataCadastro(new Date());
          pView.setDataUltimaAlteracao(new Date());
          retorno.addConteudoLista(publicoDao.criarPublico(pView));
          helper.setQuantidadeImportados(i);
        }
        
        helper.setPublicos(retorno);
        helper.setNomeHelper("importarhelper");
       
      }

3 Respostas

W

Eu sei que o problema está na forma com que estou pegando o arquivo.
na verdade só estou pegando o caminho do arquivo então é lógico que não vai encontrar se o servidor está na web. Então qual a forma correta de recuperar o arquivo? tentei usar request.getInputStream() mas não sei trabalhar com essa função…

FileReader importaFile = new FileReader("c:\caminho do arquivo"); 
BufferedReader publicoReader = new BufferedReader(importaFile);
N

não sei se o problema é esse. Vc tem que verificar se o caminho passado é válido (se existe no computador onde o servidor está rodando). Existem algumas opções de recuperar caminhos dinamicamente, o mais interessante seria você colocar o arquivo a ser lido dentro do seu contexto. por exemplo:

c;\tomcat\webapps\myapp\arquivo.txt

vc pode usar o seguinte comando:
String path = System.getProperty(“user.dir”); //recupera o diretório onde o tomcat, ou o seu container web, está executando.
aí é só vc acrescentar + “webapps/myapp/”.

e num último caso vc pode recuperar o diretório de um banco de dados.

W

Na verdade o arquivo a ser lido não vai estar no servidor não…quem vai definir o arquivo é o usuario do sistema, visto que se trata de uma lista de contatos pessoais, então cada usuario após efetuar login vai poder importar para o sistema sua lista de contatos, logo o arquivo txt a ser lido vai estar do lado do cliente e não do lado do servidor…

Criado 21 de julho de 2006
Ultima resposta 22 de jul. de 2006
Respostas 3
Participantes 2