Ola é a primeira vez que participo de um tópico aqui ,isso porque estou realmente precisando de uma ajuda.
No código que montei abaixo estou tendo um problema com a var buffer que fará parte de byte[] bytes.Nesse caso quando deixo buffer como 16 ou mais,acaba dando um erro no arquivo final de download,o que não acontece quando a deixo como 8 ou menos.Gostaria de saber o porque disso estar ocorrendo.Desde já obrigado!
package appdownload;
import java.io.*;
import java.net.*;
public class AppDownload {
public static void main(String[] args) {
int downloaded = 0;
int download = 0;
String endereco = "http://www.longtailvideo.com/jw/upload/mediaplayer-viral.zip";
try {
URL url1 = new URL(endereco);
System.out.println("* Conectando...");
URLConnection con = url1.openConnection();
con.connect();
System.out.println("* Conectado à : " + url1.getProtocol() + "://" + url1.getHost() + "" + url1.getPath());
FileOutputStream fileout = new FileOutputStream("c:/Johnny.zip");
System.out.println("* Baixando " + con.getContentLength() + " bytes");
InputStream entrada = con.getInputStream();
int buffer = 2048;
byte[] bytes = new byte[buffer];
while((download = entrada.read(bytes)) != -1) {
downloaded += download;
fileout.write(bytes);
System.out.println("* Downloaded: "+downloaded);
}
fileout.close();
System.out.println("* Arquivo baixado com sucesso!");
} catch (IOException e) {
e.printStackTrace();
}
}
}