在Java byte[] st = new byte[4096]
中,暗示数组st
的大小不会超过4096字节。
Scala等效值为st:Array[byte] = Array()
,其中大小未知。如果我正在读取一个巨大的文件到这个数组,那我怎么能限制数组的大小?
如果我不关心上述操作的大小,会不会有副作用?
答案 0 :(得分:28)
var buffer = new Array[Byte](4 * 1024)
工作得很好,它表现得像预期的那样。
答案 1 :(得分:9)
您的Java示例不会生成一个上限大小的数组,它会生成一个精确指定大小的数组,该数组在整个生命周期内都是固定的。 Scala阵列在这方面是相同的。另外,这个:
val st: Array[Byte] = Array()
分配长度为0的Byte(Java中的“byte”)数组。
就将文件读入数组而言,如果必须处理整个文件,则尝试分配所需的空间,如果失败,则无法继续。
答案 2 :(得分:0)
如果你迟到了:
val buffer = new Array.ofDim[Byte](4 * 1024)