Versão atual:

Arquivo chegando corrompido

Bom dia pessoal!

Estou tentando enviar arquivos de atualização do meu sistema para os clientes mas os arquivos estão chegando corrompidos... Geralmente faltando 1KB no tamanho deles.

Ex.: arquivo original tem 32.800KB, o arquivo chega com 32.799KB.

Segue o Código do Servidor (envia o arquivo)

//Lendo Arquivo
arquivoASerEnviado = new File(caminhoExecutavel);
leituraDoArquivo = new FileInputStream(arquivoASerEnviado);

//Atribuindo o nome do arquivo
nomeArquivo = arquivoASerEnviado.getName();

//enviando o nome do arquivo
escritor.println(nomeArquivo);

// Criando tamanho de leitura
byte[] cbuffer = new byte[1024];
int bytesRead;

// Lendo arquivo criado e enviado para o canal de transferencia
while ((bytesRead = leituraDoArquivo.read(cbuffer)) != -1) {
    os.write(cbuffer, 0, bytesRead);
    os.flush();
}
//fechar leitura de arquivo
leituraDoArquivo.close();

Segue o Código do Cliente (recebe o arquivo)

//recebe o nome do arquio
nomeArquivo = leitor.nextLine();

//Informar situação a janela de atualização
Atualizacao.setStatusAtualizacao("Baixando executável atualizado...");

//Cria Arquivo no repositorio para receber os posteriores dados
gravarArquivo = new FileOutputStream(PesquisaNoBancoDeDados.pesquisarNoBancoDeDados("CAMINHOREPOSITORIO", "CONFIGATUALIZACAOSISTEMA", "") + (InfoSistemasOperacionais.TIPO_SISTEMA_OPERACIONAL_RESULT.equalsIgnoreCase("windows") ? "\\" : "/") + nomeArquivo);

// Prepara variaveis para transferencia
byte[] cbufferExe = new byte[1024];
int bytesRead;

//Gravar conteudo do arquivo recebido do servidor para o arquivo do cliente
while ((bytesRead = is.read(cbufferExe)) != -1) {
    gravarArquivo.write(cbufferExe, 0, bytesRead);
    gravarArquivo.flush();
}
//fecha o arquivo
gravarArquivo.close();

Alguém poderia me ajudar?!

Versão(1):

Ver a versão formatada

Arquivo chegando corrompido

Comentário

new question