Foros del Web » Programación para mayores de 30 ;) » Java »

Leer SWF

Estas en el tema de Leer SWF en el foro de Java en Foros del Web. Hola, Me gustaría saber cómo puedo hacer para leer y guardar un archivo SWF, con JAVA, que se encuentra en una URL. Yo me imagino ...
  #1 (permalink)  
Antiguo 23/02/2009, 13:23
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Pregunta Leer SWF

Hola,

Me gustaría saber cómo puedo hacer para leer y guardar un archivo SWF, con JAVA, que se encuentra en una URL.

Yo me imagino que será algo así:

Código:
URL url = new URL(http://dominio.com/archivo_flash.swf);
URLConnection c = url.openConnection();

HttpURLConnection h = (HttpURLConnection) c;
h.connect();

                    try {
                        PrintWriter pw=new PrintWriter("prueba.swf");
                        InputStream in = h.getInputStream();
                        BufferedReader data = new BufferedReader(new InputStreamReader(in));
                        
                        String line = null;
                        while ((line = data.readLine()) != null) {
                            System.out.println(line);
                            pw.write(line);
                        }
                        pw.close();
                    } catch (Exception exc2) {
                        
                    } finally {
                        
                    }

h.disconnect();
Pero algo estoy haciendo mal, porque el archivo SWF que me crea no se reproduce. Parece que el volcado de datos lo hace bien, porque por pantalla sale un montón de códigos extraños (supongo, la información del SWF pasada a texto).

¿Alguien me puede echar una mano con esto?, ¿cómo hacer para leer y guardar un swf de una URL?

Gracias por la ayuda.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #2 (permalink)  
Antiguo 24/02/2009, 01:04
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Leer SWF

La familia Writer y Reader son objetos para leer flujos de caracteres y los ficheros .swf son de tipo binario, así que es normal que al guardarlos así se "estropeen" y luego no los puedas ejecutar. Para binarios, tienes que usar la familia Input/OutputStream.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 25/02/2009, 08:09
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
De acuerdo Respuesta: Leer SWF

Gracias GreenEyed, como siempre, por tu referencia.

Para los que tengan mi mismo problema, os dejo un método que encontré por ahí para realizar esta tarea.
Código:
public void guardarSWF(String strURL) {
        FileOutputStream fout = null;
        int c = 0;
        byte b[] = null;

        URL url = null;
        try {
            fout = new FileOutputStream("prueba.swf");
            b = new byte[1024];
            url = new URL(strURL);

            URLConnection con;

            con = url.openConnection();

            InputStream is = con.getInputStream();

            while (c >= 0) {
                c = is.read(b, 0, 1024);
                if (c >= 0) {
                    fout.write(b, 0, c);
                    b = new byte[1024];
                }

            }

            fout.close();
            is.close();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(PruebaFlash.class.getName()).log(Level.SEVERE, null, ex);
        } catch (MalformedURLException ex) {
            Logger.getLogger(PruebaFlash.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(PruebaFlash.class.getName()).log(Level.SEVERE, null, ex);
        }


    }
Espero que os sirva.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:57.