Problemas de memoria con InputStream en Java

Necesito leer un archivo en una matriz de bytes. Todo el archivo debe leerse en la matriz. El problema es que recibo un error OutOfMemory ya que el tamaño del archivo es demasiado grande. El aumento de -XmX no parece tener ningún efecto. Aquí está el fragmento de código:

InputStream in = new FileInputStream(file);
long length = file.length();                        
byte[] out = new byte[(int)length]; 
// Process the byte array

El problema ocurre durante la instancia de la matriz de bytes. ¿Existe una solución alternativa que requiera menos memoria para este problema?

Respuestas a la pregunta(4)

Su respuesta a la pregunta