Olá!!
Tenho esses dois métodos que são chamados via RMI, eles lêem um arquivo transformando-o em um array de bytes, e o outro monta o arquivo com base nesse array, só que o arquivo é corrompido sempre. Alguém tem alguma idéia do que possa vir a ser isso?
public byte[] getServico(String localizacao) throws RemoteException{
byte[] resultado = null;
try{
File arquivo = new File(localizacao);
FileInputStream in = new FileInputStream(arquivo);
resultado = new byte[(int)arquivo.length() + 1];
in.read(resultado);
in.close();
} catch(Exception e){
e.printStackTrace();
}
return resultado;
}
try {
Registry registro = LocateRegistry.getRegistry(listaDeIps[i],6400);
DownloadServico servicoDownload = (DownloadServico)registro.lookup("download");
byte[] arquivo = new byte[63488];
arquivo = servicoDownload.getServico(caminhoEnomeServico + ".jar");
String diretorioDeDownloads = "C:/DownloadServicos/";
File pasta = new File(diretorioDeDownloads);
if(!pasta.exists())
pasta.mkdir();
File arq = new File(diretorioDeDownloads + "/" + nome + ".jar");
FileOutputStream out = new FileOutputStream(arq);
out.write(arquivo);
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}