Problema al descargar fichero
Publicado por Neoniet (1 intervención) el 16/09/2006 16:06:08
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:
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);
System.out.println("Fin de flujo");
escritor.close();
return false;
}
else
{ descargado += bytes_disponibles;
escritor.write(datos);
return true;
}
}
catch(IOException e)
{
}
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");
}
}
}
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:
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);
System.out.println("Fin de flujo");
escritor.close();
return false;
}
else
{ descargado += bytes_disponibles;
escritor.write(datos);
return true;
}
}
catch(IOException e)
{
}
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");
}
}
}
Valora esta pregunta


0