Article View: es.comp.lenguajes.java
Article #1006Re: problemas al descargar fichero con URLConnection
From: Fenix
Date: Mon, 18 Sep 2006 08:29
Date: Mon, 18 Sep 2006 08:29
101 lines
4120 bytes
4120 bytes
"korkuts" <ricardo_fermon@yahoo.es> escribi� el
news:1158415925.195742.170680@m7g2000cwm.googlegroups.com:
> buenas.
> Tengo un problemillas, estoy probando java y estoy haciendo un simple
> programita que se baja un archivo binario desde un servidor web, el
> problema que es que lo baja corrupto, vamos que no entiendo lo baja
> con bytes de m�s. Y no se el motivo, os pongo el codigo a ver si me
> podeis echar una mano:
Te pongo la versi�n corregida.
Ten�as que controlar la �ltima escritura... que fuera (peso -
descarga). De hecho, yo tambi�n he a�adido esa comprobaci�n en todas las
escrituras... en principio eso no deber�a ser necesario, pero para
asegurarnos (por si nos llega una lectura de menos de 1024 bytes).
Adem�s, he corregido un par de errores, que imagino que ser�an al
trascribir el c�digo al mensaje.
PD: cuidado con las l�neas cortadas... es posible que tengas que
"reunirlas" al copiar el c�digo.
-------------------------------------------------
import java.io.*;
import java.net.*;
import java.lang.*;
public class DescargarUrl {
URL url;
URLConnection servidor;
InputStream conexion;
BufferedInputStream archivo_remoto;
FileOutputStream archivo_local;
BufferedOutputStream escritor;
int descargado;
int peso;
DescargarUrl(String url_archivo){
try {
url = new URL(url_archivo);
servidor = url.openConnection();
conexion = servidor.getInputStream();
peso = servidor.getContentLength();
archivo_remoto = new BufferedInputStream
(conexion);
System.out.println("Iniciando descarga de " +
peso + " bytes");
} catch(Exception e){}
}
public void inicioDescarga(String destino){
try{
archivo_local= new FileOutputStream(destino);
escritor = new BufferedOutputStream
(archivo_local);
}catch(IOException e){}
}
public boolean descargarBytes() {
int bytes_disponibles;
try{
byte[] datos = new byte[1024];
if((bytes_disponibles = archivo_remoto.read
(datos)) == -1) {
escritor.write(datos, 0, this.peso -
this.descargado);
System.out.println("Fin de flujo");
escritor.close();
return false;
} else {
descargado += bytes_disponibles;
escritor.write(datos, 0,
bytes_disponibles);
return true;
}
}
catch(IOException e){
System.err.println(e.getMessage());
}
return true;
}
public static void main(String args[])
{
DescargarUrl mul = new DescargarUrl
("http://www.crilandor.com/archivos/hues.mul");
mul.inicioDescarga("hues.mul");
while(mul.descargarBytes()) {
System.out.println(mul.descargado + " bytes");
}
}
}
--------------------------
Technical Details
Message-ID:
<Xns98426A73C9D08estnoes@127.0.0.1>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen3-lo.nuria.telefonica-data.net!not-for-mailReferences:
<1158415925.195742.170680@m7g2000cwm.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,d4aabcf80516c543 X-Google-Attributes: gid1116f3,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen3-lo.nuria.telefonica-data.net!not-for-mail From: Fenix <est@no.es> Newsgroups: es.comp.lenguajes.java Subject: Re: problemas al descargar fichero con URLConnection Date: Mon, 18 Sep 2006 08:29:25 +0000 (UTC) Organization: Nada Lines: 101 Message-ID: <Xns98426A73C9D08estnoes@127.0.0.1> References: <1158415925.195742.170680@m7g2000cwm.googlegroups.com> NNTP-Posting-Host: 199.red-217-127-31.staticip.rima-tde.net X-Trace: nsnmpen3-gest.nuria.telefonica-data.net 1158568165 17839 217.127.31.199 (18 Sep 2006 08:29:25 GMT) X-Complaints-To: usenet@nsnmpen3-gest.nuria.telefonica-data.net NNTP-Posting-Date: Mon, 18 Sep 2006 08:29:25 +0000 (UTC) User-Agent: Xnews/2006.03.14 Hamster/2.1.0.11