estou com um problema…
estou implemetando um download de arquivo…
esses arquivos ficam um uma pasta em um diretorio… logo faço uma comparação se o nome do arquivo requerido for igual ao nome do
arquivo que estiver no diretorio tenho que pegar esse arquivo e devolvelo no “arquivoRetorno”.
porem nao sei como faço para pegar o arquivo em si… sou novo em java tenho bastante duvidas ainda
… segue o meu código comentado…
não sei o que é requestVO e responseVO mas por que você não simplesmente instancia um novo File com o caminho do arquivo que você encontrou e retorna ele ?
juliocesarsrosa
hunm… request e response … significa envio e retorno mesmo nada que influencie… esqueçamos essa parte…
poderia me dar um exemplo de como ficaria amigo ???
EDIT: agora eu percebi que pelo laço, a instância seria perdida ao sair do if…
então você pode colocar a linha
responseVO.getArquivoRetorno(//aqui vira o arquivo);
dentro do if no seu while, e quebrar o laço quando encontrar o que quer…
não sei se é viável ou nem se é a melhor maneira hehe
juliocesarsrosa
Sim axo que entendi agora…
ele corre o diretorio no while… e depois no if eu faço uma comparação rpa ver se tem algm com o mesmo nome…
caso tenha eu instancio File pegando getAbsolutePath() …
e depois jogo no meu arquivo de retorno é isso ???
obrigado
Rodrigo_Sasaki
sim, mas cuidado com o escopo da variável… caso ela seja instanciada dentro do if ou do while… e você tentar utilizá-la depois da execução dos mesmos, você terá problemas
juliocesarsrosa
vlw brother vou reestruturar isso estou indo agora…
talvez se restar alguma duvida postarei amanhan de manhan obrigado pela atenção!
abraços
Rodrigo_Sasaki
opa… sem problemas…
se resolvi sua dúvida, coloque um [RESOLVIDO] no título la, fazendo favor…
senão continue postando aqui hehe
juliocesarsrosa
e aew !!! estou com um outro problema… agora…
eu pego o arquivo de um diretorio dou um encode em base 64 nele e depois tenho que devolver o arquivo no “set” do response
vou comentar essa parte… porem o setArquivoRetorno é do tipo String e preciso retornar um file… estou em duvida como fazer agora…
nao sei como retornar… na verdade nao sei mais o que retornar … acabei me perdendo no meu próprio código…
sou novo em java e me confundo muito ainda…
nao sei mais se estou retornando o conteudo do arquivo ou se estou retornando o arquivo em si…
preciso retornar o arquivo ja em base 64.encode
vlwww
privateFT05ResponseVObuildResponse(Stringsource,FT05RequestVOrequestVO)throwsHandleException{FT05ResponseVOresponseVO=newFT05ResponseVO();responseVO.setCodigoRetorno(0);try{LocalFileUtilfileUtil=newLocalFileUtil(source);List<File>files=fileUtil.getFiles("");byte[]buf=newbyte[1024];intlen=0;log.info("Generating FT00 response object");for(Filefile:files){InputStreamin=null;ByteArrayOutputStreamout=null;try{in=newFileInputStream(file);out=newByteArrayOutputStream();while((len=in.read(buf))>0){out.write(buf,0,len);out.flush();if(file.getName().contains(requestVO.getNomeArquivo())){bytebuffer[]=newbyte[(int)file.length()];BufferedInputStreaminput=newBufferedInputStream(newFileInputStream(file.getAbsolutePath()));Stringarquivo=Base64.encode(buf);input.read(buffer,0,buffer.length);input.close();responseVO.setArquivoRetorno(arquivo);//aqui preciso retornar o arquivo em base64.encode , mas acho que estou retornando o seu conteudo...vlwww}}}catch(Exceptione){}finally{try{if(in!=null){in.close();}if(out!=null){out.close();}}catch(IOExceptione){log.warn("Fail to close streams for file "+file.getName(),e);}}}}catch(IntegLayerExceptione){thrownewHandleException(IntegLayerErrorCodes.ERROR_BUILDING_RESPONSE,e);}returnresponseVO;}
juliocesarsrosa
juliocesarsrosa:
ola galera… !!!
estou com um problema…
estou implemetando um download de arquivo…
esses arquivos ficam um uma pasta em um diretorio… logo faço uma comparação se o nome do arquivo requerido for igual ao nome do
arquivo que estiver no diretorio tenho que pegar esse arquivo e devolvelo no “arquivoRetorno”.
porem nao sei como faço para pegar o arquivo em si… sou novo em java tenho bastante duvidas ainda
… segue o meu código comentado…
vlw galera obrigado descupem pela duvida primaria…
Rodrigo_Sasaki
então… só pra dizer mesmo
quando for colocar o [RESOLVIDO] no título… edite o seu primeiro post do tópico… não o último, senão não adianta heheh, não aparece na lista dos tópícos