2010-02-09 16 views
10

En Java byte[] st = new byte[4096], implica que el tamaño de la matriz st no excederá 4096 bytes.¿Puedo limitar el tamaño de una matriz en Scala?

El equivalente de Scala es st:Array[byte] = Array() donde el tamaño es desconocido. Si estoy leyendo un archivo enorme en esta matriz, ¿cómo puedo limitar el tamaño de la matriz?

¿Habrá algún efecto secundario si no me importa el tamaño de la operación anterior?

Respuesta

27
var buffer = new Array[Byte](4 * 1024) 

Funciona muy bien, y se comporta como se esperaba.

9

Su ejemplo de Java no produce una matriz con un límite superior en su tamaño, sino que produce una matriz con el tamaño indicado, que se fija durante toda su vida útil. Las matrices Scala son idénticas a este respecto. Además, este:

val st: Array[Byte] = Array() 

asigna una matriz de bytes ("byte" en Java) de longitud 0.

En cuanto a la lectura de un archivo en una matriz, si tiene que procesar todo el archivo, a continuación, intenta asignar el espacio requerido y, si falla, no puedes continuar.

Cuestiones relacionadas