Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/08/2008, 01:47
dobledealfa
 
Fecha de Ingreso: junio-2006
Mensajes: 48
Antigüedad: 18 años, 7 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.