[Dúvida] Conversão de Imagens!

Falae, galera do GUJ!

Beleza?

Estou com um grande problema :S

Quero converter uma imagem que eu pegar em um array de bytes, e gravar em um campo blob no Banco de Dados.
A minha codificação tá assim:

public byte[] imageToByte(String fileName) throws IOException {

        byte[] buffer = new byte[1024];
        fileName      = "C:/naruto.jpg";

        InputStream is            = getClass().getResourceAsStream( fileName );
        ByteArrayOutputStream out = new ByteArrayOutputStream();

        while (is.read( buffer ) != -1) out.write( buffer );
 
        
        return out.toByteArray();
}

O problema é que, quando faço uso do método getResourceAsStream, o objeto is fica nulo!

Seguem, então, quatro perguntas:

1. Está correto o que estou fazendo? Alguma dica de como arrumar isso?
2. O mais indicado é converter em array de bytes ou outro tipo?
3. Alguém sabe um método de fazer o inverso? Converter um campo blob em uma imagem?
4. É possível fazer o mesmo com um arquivo de música, por exemplo? Converter um arquivo .mp3 em array de bytes para gravar no Banco de Dados, por exemplo?

Desde já, grato a todos!

[]s

O getResourceAsStream funciona para Resources.

Resources são arquivos no interior do seu classpath, incluindo dentro do .jar da sua aplicação, e seu caminho é relativo a raíz do classpath. Você não deve colocar letras de drives nem nada nele.

Se você quiser abrir um arquivo, use um FileInputStream:

InputStream is            = new FileInputStream( fileName ); 

Se você quiser mesmo abrir um recurso, especifique o caminho de forma relativa ao classpath de sua aplicação:

[code] fileName = “/images/naruto.jpg”;

     InputStream is            = getClass().getResourceAsStream( fileName );  [/code]