Estou tentando fazer um projeto, onde preciso ler de um arquivo texto, mas antes estou fazendo alguns teste.
Nesse codigo abaixo, a chamada ao metodo (file.isDirectory()) sempre está dando como falsa e eu ja criei no c: um arquivo no bloco de notas com o nome entrada.
O instancia a classe FileReader também não está funcionando. Pode ser devido ao diretorio está falhando.
OK, mas “entrada.txt” é um arquivo ou diretório? Se ele volta falso presume-se que seja um arquivo. Se colocar o erro com o FileReader fica mais fácil. Outra coisa, na hora de especificar o caminho do arquivo, use-o como no linux:
T+
A
Alexs2110PJ
Tem razão. Olhei a api e percebi que o metodo testa se é um diretório ou não. Como se tratava de um arquivo ele respondia false.
Dê uma olhada neste codigo, não consigo fazer a classe StringTokenizer receber as informações que estão no arquivo entrada.txt.
Outra coisa que está faltando é o tipo de separador para o Tokenizer. Por default é espaço, mas é isto mesmo que tu precisa? T+
W
wolbertPJ
dar uma olhada nestes 3 metodos que eu te postei, deve tirar algumas das suas duvidas.
publicvoidgravarDadosArquivo(RespostaConsultaParamConveniadasrespConsParamConv,StringnomeArquivo){CSIDebug.println("TratadorConsiteTransmiteBalanco::gravarDadosArquivo::ENTROU");try{Stringdir="";Stringdiretorio="";Filefile=null;FileWriterfw=null;try{dir=ParametrosGerais.getDescricao(DIRETORIO_ARQUIVO_PARAMETROS_CONVENIADA)+"teste"+File.separator;}catch(ExcecaoObjetoInexistentee){CSIDebug.println("##TratadorConsiteTransmiteBalanco::gravarDadosArquivo-->Diretorionãoencontrado"+e);}FilefileDir=newFile(dir);if(!fileDir.exists()){fileDir.mkdirs();}try{diretorio=ParametrosGerais.getDescricao(DIRETORIO_ARQUIVO_PARAMETROS_CONVENIADA)+"teste"+File.separator+"teste.txt";}catch(ExcecaoObjetoInexistentee){CSIDebug.println("##TratadorConsiteTransmiteBalanco::gravarDadosArquivo-->Diretorionãoencontrado"+e);}Collectioncoll=respConsParamConv.getVectorDadosConveniada();Iteratoriter=coll.iterator();fw=newFileWriter(diretorio,true);Stringvalor="";while(iter.hasNext()){DadosConveniadasdadosConv=(DadosConveniadas)iter.next();Stringcodigo=dadosConv.getCodigo();Stringdescricao=dadosConv.getDescricao();booleanmenu=dadosConv.isExibeMenu();Stringbin=dadosConv.getBin();inttDesconto=dadosConv.getTipoDesconto();CSIBigDecimal[]nDesconto=dadosConv.getNiveisDescontos();String[]nivel=newString[nDesconto.length];StringvalAux="";for(inti=0;i<nDesconto.length;i++){if(i==0){nivel[i]=nDesconto[i].toString();}else{nivel[i]=","+nDesconto[i];}valAux=valAux+nivel[i];}intcomportamento=dadosConv.getComportamento();valor=codigo+";"+descricao+";"+menu+";"+bin+";"+tDesconto+";"+valAux+";"+comportamento;Stringtxt=valor+"\n";fw.write(txt);}fw.close();}catch(IOExceptione){}}publicMensagemleDadosArquivo(Mensagemmsg,Servicoorigem){CSIDebug.println("##TratadorMensagemConsultaParamConveniadas::trataMensagem-->ENTROUNOTRATADOR");longtimerTotal=System.currentTimeMillis();MensagemConsultaParamConveniadasmsgConsParamConv=(MensagemConsultaParamConveniadas)msg;RespostaConsultaParamConveniadasrespConsParamConv=newRespostaConsultaParamConveniadas();Stringdiretorio="";StringfileSeparator="\\";try{diretorio=ParametrosGerais.getDescricao(DIRETORIO_ARQUIVO_PARAMETROS_CONVENIADA)+File.separator+msgConsParamConv.getCodigoLoja()+File.separator;CSIDebug.println("##TratadorMensagemConsultaParamConveniadas::trataMensagem::DIRETORIO-->"+diretorio);}catch(Exceptione){CSIDebug.println("TratadorMensagemConsultaParamConveniadas::trataMensagem::Naofoipossivelencontrardiretorio");respConsParamConv.setStatus(RespostaConsultaParamConveniadas.ARQUIVO_INEXISTENTE);respConsParamConv.setMensagemResp("ErrProcurandoDir.");}FilefileDir=newFile(diretorio);// Se arquivo nao existe informa tratadorif(!fileDir.exists()){CSIDebug.println("##TratadorMensagemConsultaParamConveniadas::trataMensagem::DIRETORIONAOEXISTI-->"+diretorio);fileDir.mkdirs();}Filefile=newFile(diretorio+NOME_ARQUIVO_PARAMETROS_CONVENIADA+msgConsParamConv.getCodigoLoja()+EXTENSAO_ARQUIVO_PARAMETROS_CONVENIADA);// Se arquivo nao existe informa tratadorif(!file.exists()){CSIDebug.println("##TratadorMensagemConsultaParamConveniadas::trataMensagem-->Nãoexistearquivo.");respConsParamConv.setStatus(RespostaConsultaParamConveniadas.ARQUIVO_INEXISTENTE);respConsParamConv.setMensagemResp("ArquivoInexistente.");returnrespConsParamConv;}booleanretorno=false;// Abre arquivo para tratamentoFileReaderfr=null;BufferedReaderbr=null;try{fr=newFileReader(file);br=newBufferedReader(fr);DadosConveniadasdadosConv=null;VectorvecDadosConv=newVector();while(br.ready()){dadosConv=newDadosConveniadas();// Le linha do arquivoStringlinha=br.readLine();// Formata linha lidaStringinfo[]=linha.split(";");dadosConv.setCodigo(info[0]);dadosConv.setDescricao(info[1]);//dadosConv.setExibeMenu(Boolean.getBoolean(info[2]));CSIDebug.println("##TratadorMensagemConsultaParamConveniadas::trataMensagem-->ExibeMenu.info[2]::"+info[2]);dadosConv.setExibeMenu((newBoolean(info[2]).booleanValue()));CSIDebug.println("##TratadorMensagemConsultaParamConveniadas::trataMensagem-->ExibeMenu.isExibeMenu()::"+dadosConv.isExibeMenu());dadosConv.setBin(info[3]);dadosConv.setTipoDesconto(Integer.parseInt(info[4]));Stringinfo2[]=info[5].split(",");CSIBigDecimal[]valor=newCSIBigDecimal[info2.length];for(inti=0;i<info2.length;i++){valor[i]=newCSIBigDecimal(info2[i]);}dadosConv.setNiveisDescontos(valor);dadosConv.setComportamento(Integer.parseInt(info[6]));vecDadosConv.add(dadosConv);}respConsParamConv.setStatus(RespostaConsultaParamConveniadas.CONSULTA_OK);respConsParamConv.setVectorDadosConveniada(vecDadosConv);respConsParamConv.setDadosConveniada(dadosConv);}catch(IOExceptione){e.printStackTrace();respConsParamConv.setStatus(RespostaConsultaParamConveniadas.ERRO_COMUNICACAO);respConsParamConv.setMensagemResp("ErrodeComunicação.");}finally{try{br.close();fr.close();}catch(IOExceptione){CSIDebug.println("##TratadorMensagemConsultaParamConveniadas::trataMensagem::IOExceptione-->"+e);respConsParamConv.setStatus(RespostaConsultaParamConveniadas.ERRO_COMUNICACAO);respConsParamConv.setMensagemResp("ErrodeComunicação.");}}returnrespConsParamConv;}}publicbooleandeletarArquivo(StringnomeArq){booleandeletou=false;// Verifica se diretório onde estão os pedidos existeStringdir="";try{dir=ParametrosGerais.getDescricao(DIRETORIO_VIA_BALANCO);}catch(ExcecaoObjetoInexistentee){CSIDebug.println("##TratadorConsiteTransmiteBalanco::trataMensagem-->Diretorionãoencontrado"+e);}Filefile=newFile(dir);//CSIDebug//.println("TratadorConsiteTransmiteBalanco::trataMensagem::Diretorio - "+ file);if(!file.exists()){file.mkdirs();}if(file.exists()&&file.isDirectory()){String[]nomesArquivo=file.list();for(inti=0;i<nomesArquivo.length;i++){StringnomeArquivo=nomesArquivo[i];//CSIDebug// .println("TratadorConsiteTransmiteBalanco::trataMensagem::Nome arquivo - "// + nomeArquivo);if(nomeArquivo.startsWith(nomeArq)){Stringarquivo=nomeArquivo;FilefileDel=newFile(dir+arquivo);//CSIDebug//.println("TratadorConsiteTransmiteBalanco::trataMensagem::Diretorio fileDel- "// + fileDel);deletou=fileDel.delete();CSIDebug.println("TratadorConsiteTransmiteBalanco::Deletou?-"+deletou);}}}returndeletou;}
A
Alexs2110PJ
No codigo que vc mandou não ei onde vc criou este objeto reader que chama o metodo readline e também o reader.close no final do programa.
while ((linha = reader.readLine())!= null){
Outro problema é que a classe StringTokenizer não está aceitando um objeto do tipo StringBuilder como parametro.