Ola galera estou com um problema…
eu recebo um cara chamado “Arquivo” que sera o conteudo de um arquivo que eu crio nomeio e salvo em um diretorio.
o fluxo funciona nomal salva o arquivo com o seu conteudo, fiz em uma classe de testes… e funcionou perfeitamente…
o problema: o problema eh q esse cara “Arquivo” bem em Base64.encode … ou seja tenho que dar um decode nele para depois salvar o arquivo de modo
que o seu conteudo fique legivel…
segue meu código
private void buildFile(FT01RequestVO requestVO, String source)throws HandleException {
try {
File file = new File(source,buildFileName(requestVO));
try {
file.createNewFile();
FileWriter fw = new FileWriter(file);
fw.write(Base64.decode(requestVO.getArquivo())); // aki nao funciona ele acusa erro no fw.write
fw.close();
} catch (IOException e) {
throw new HandleException(ERROR_FTP_UPLOAD,"Erro no upload do arquivo", e);
}
} catch (IntegLayerException e) {
throw new HandleException(
IntegLayerErrorCodes.ERROR_BUILDING_RESPONSE, e);
}
o trecho comentado do código tecnicamente deveria funcionar mais nao funciona… algm tem uma sugestão???
Tentei fazer de outro geito mas sou novo em java nao comprendo muito bem segue a tentativa…
private void buildFile(FT01RequestVO requestVO, String source)throws HandleException {
try {
File file = new File(source,buildFileName(requestVO));
ByteArrayOutputStream out = null;
try {
file.createNewFile();
FileWriter fw = new FileWriter(file);
fw.write(decodeFile(requestVO.getArquivo));
fw.close();
} catch (IOException e) {
throw new HandleException(ERROR_FTP_UPLOAD,"Erro no upload do arquivo", e);
}
} catch (IntegLayerException e) {
throw new HandleException(
IntegLayerErrorCodes.ERROR_BUILDING_RESPONSE, e);
}
private static int decodeFile(String base64File, FT01RequestVO requestVO){ // nao sei se posso passa-lo como int...
byte[] decodeFile = Base64.decode(base64File.getBytes());
new ByteArrayInputStream(decodeFile);
return decodeFile(base64File); // aki tenho que retornar mais nao sei o que ...
}
vlw galera !!!