Bytes e Memoria

Pessoal queria que voçes dassem uma olhada nesse código j2me:

FileConn... file=//Pega arquivo de 3Mb e abre InputStream in. byte[] buffer=new byte[3*1000*1024];//3Mb in.read(b,0,3*1000*1024);//Armazena 3mb em uma variavel ,nao é isso ?, da OutOfMemory certo ?

Te jeito de resolver isso ,otimizar o codigo ?