🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #1006

Re: problemas al descargar fichero con URLConnection

#1006
From: Fenix
Date: Mon, 18 Sep 2006 08:29
101 lines
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-mail
References: <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