Fala devs! Tudo certo? Estou com o seguinte problema…
Estou desenvolvendo um programa atualizador, que monitora novas versões de outros programas.
Tenho um repositório FTP onde ficam as novas versões dentro de pastas compactadas (.zip), dentro dessas pastas, podem conter diversas pastas e arquivos, dependendo das alterações nas novas versões.
Meu projeto já tem a estrutura para validar se existe uma versão mais recente e inclusive consegue baixar a pasta compactada, porém ao tentar descompactar a pasta, informa que a mesma está corrompida, conforme a imagem abaixo:
Tentei abrir o arquivo com o editor de texto e o conteúdo é:
Alguém sabe me explicar por que o arquivo baixado fica corrompido e com tamanho diferente do arquivo autêntico?
Como poderia baixar essa pasta compactada de forma correta sem perder nenhum arquivo nela contida?
O trecho de código Java que baixa esse arquivo corrompido é:
try (BufferedInputStream in = new BufferedInputStream(new URL(DOWNLOAD_PATH + fileName + ".zip").openStream());
FileOutputStream fileOutputStream = new FileOutputStream(SAVE_PATH + fileName + ".zip")) {
int bytesRead;
while ((bytesRead = in.read()) != -1) {
fileOutputStream.write(bytesRead);
}
} catch (IOException e) {
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
String exceptionDetails = sw.toString();
log.error(exceptionDetails);
updateStatusToError();
}