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

Ayuda con un error en Java

Estas en el tema de Ayuda con un error en Java en el foro de Java en Foros del Web. Hola , pues veran estoy probando el sig. codigo que encontre en internet, y estoy usando eclipse: Código PHP: public class  ImagenBytes {      ImagenBytes (){} ...
  #1 (permalink)  
Antiguo 03/08/2008, 01:47
 
Fecha de Ingreso: junio-2006
Mensajes: 48
Antigüedad: 17 años, 11 meses
Puntos: 0
Ayuda con un error en Java

Hola , pues veran estoy probando el sig. codigo que encontre en internet, y estoy usando eclipse:
Código PHP:
public class ImagenBytes
{
    
ImagenBytes(){}
    public static 
void main(String[] args)
    {
        
int b;
        
//Para realizar una codificacion
        
try
        {
            
ImagenBytes ib=new ImagenBytes();
            
byte[] imagenEnBytes=ib.crearImagen("naruto.jpg");
            
imagenEnBytes.length;
         
System.out.println(b);
        }catch(
Exception fnfe)
        {
            
fnfe.printStackTrace();
        }
    }
    
//Metodo encardado ingresar la imagen en un java.io.InputStream
    
public byte[] crearImagen(String imagen)
    {
        try
        {
            
ClassLoader cl=this.getClass().getClassLoader();
            
InputStream in=cl.getResourceAsStream(imagen);
            
byte[] data=obtenerBytes(in,in.available());
            return 
data;
        }catch(
Exception e)
        {
            
e.printStackTrace();
        }
        return 
null;
    }

    
//Devuelve el array de bytes
    
private static byte[] obtenerBytes(InputStream is,int capacidad)
    {
        
DataInputStream dis=new DataInputStream(is);
        
byte[] bytes=new byte[capacidad];//para la capacidad del array
        
try
        {
            
dis.readFully(bytes);
            if(
dis!=null)
                
dis.close();
        }
        catch(
java.io.IOException ioe)
        {
            
ioe.printStackTrace();
        }
        return 
bytes;
    }

De esa forma funciona, pero cuando lo hago de la siguiente manera (se produce java.lang.NullPointerException):
Código PHP:
package servlets.Enlaces;
import servlets.classes.*;
public class 
Principal
{
    public static 
void main(String[] args)
    {
        
Convertir ib=new Convertir();
        
ib.regresa();
    }
}
---------------------------------------------------------
package servlets.classes;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.swing.*;
import javax.imageio.*;
import java.applet.Applet;
public class 
Convertir {
    public 
Convertir() {}
    public 
byte[] regresa() {
        
int b 0;
        
Convertir ib=new Convertir();
        
byte[] imagenEnBytes null;
        try {
            
imagenEnBytes ib.crearImagen("naruto.jpg");
            
imagenEnBytes.length;
        }catch(
Exception fnfe) {
            
fnfe.printStackTrace();
            
System.out.println("Error regresa");
        }
        return 
imagenEnBytes;
    }

    public 
byte[] crearImagen(String imagen) {
        try {
            
ClassLoader cl=this.getClass().getClassLoader();
            
InputStream in=cl.getResourceAsStream(imagen);
            
byte[] data=obtenerBytes(in,in.available());
            return 
data;
        }catch(
Exception e) {
            
e.printStackTrace();
            
System.out.println("Error crearImagen");
        }
        return 
null;
    }
    private static 
byte[] obtenerBytes(InputStream is,int capacidad) {
        
DataInputStream dis=new DataInputStream(is);
        
byte[] bytes=new byte[capacidad];
        try {
            
dis.readFully(bytes);
            if(
dis!=null)
                
dis.close();
        } catch(
java.io.IOException ioe) {
            
ioe.printStackTrace();
            
System.out.println("Error obtenerBytes");
        }
        return 
bytes;
    }

En InputStream in=cl.getResourceAsStream(imagen); del método "crearImagen" es donde a "in" le asgina "null" y pues se produce el error.
La verdad no se porque pasa esto cuando trabajo de esta ultima forma, ¿alguien que pueda darme un mano? por favor.
  #2 (permalink)  
Antiguo 03/08/2008, 03:35
Avatar de Xinef  
Fecha de Ingreso: marzo-2007
Mensajes: 202
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: Ayuda con un error en Java

¿Dónde guardas la imagen?

Ten en cuenta que en la segunda opción estás metiendo la clase en un paquete... Vamos, que el problema, seguramente, es que no encuentra la imagen.
  #3 (permalink)  
Antiguo 03/08/2008, 11:21
 
Fecha de Ingreso: junio-2006
Mensajes: 48
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Ayuda con un error en Java

Xinef gracias por el comentario, pero probe con guardar la imagen en "servlet.Enlaces" y "servlet.classes" de la carpeta "bin" y "src", y sigue con el error tambien probe pasando toda la ruta de la imagen y nada. ¿Que podra ser?.
  #4 (permalink)  
Antiguo 03/08/2008, 18:41
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: Ayuda con un error en Java

mira sin duda alguna no te debe estar encontrandote la imagen prubea crearte dentro de la carpeta src del proyecto una carpeta llamada Imagenes y copia el archivo ahi y luego le pasas la ruta asi
byte[] imagenEnBytes=ib.crearImagen("/Imagenes/naruto.jpg");

pruebalo y despues nos cuentas

saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #5 (permalink)  
Antiguo 04/08/2008, 12:05
 
Fecha de Ingreso: junio-2006
Mensajes: 48
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: Ayuda con un error en Java

Hola pues hice las pruebas de la forma en que sugieren y sigue sin funcionar tambien probe poniedo las dos clases en el mismo paquete y tampoco.
  #6 (permalink)  
Antiguo 04/08/2008, 12:23
Avatar de Xinef  
Fecha de Ingreso: marzo-2007
Mensajes: 202
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: Ayuda con un error en Java

Cita:
Iniciado por dobledealfa Ver Mensaje
Hola pues hice las pruebas de la forma en que sugieren y sigue sin funcionar tambien probe poniedo las dos clases en el mismo paquete y tampoco.
Escribe este código en la clase y ejecútalo... a ver dónde está guardando el archivo:

Código PHP:
   FileWriter f = new FileWriter("dummy.borrame");
   
f.flush();
   
f.close(); 
Y busca el fichero.. donde esté ahí es donde deberá estar la imagen para leerla o crear una ruta relativa.

(El método es un poco basto, pero cuando no sabes por donde buscar es el mejor... :P)
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:13.